【问题标题】:NUnit [Test] is not a valid attributeNUnit [Test] 不是有效属性
【发布时间】:2010-03-17 13:17:34
【问题描述】:

我已经在 VS2008 的 Windows 类项目中包含了必要的程序集。当我开始尝试编写测试时,我得到一条红色的曲线,并且消息 [Test] 不是有效属性。我以前用过 NUnit……也许是更早的版本。我究竟做错了什么?我使用的是 2.5.2 版本。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit;
using NUnit.Core;
using NUnit.Framework;

namespace MyNamespace
{
    public class LoginTests
    {
        [Test]
        public void CanLogin()
        {
        }
    }
}

【问题讨论】:

  • 你有没有引用项目中的程序集?
  • 尝试编译粘贴第一条错误信息
  • 附带说明,您唯一需要的命名空间是 nunit.framework。

标签: .net unit-testing tdd nunit


【解决方案1】:

我在使用 2.5.3 版本时遇到了类似的问题。 问题是我在我的 nunit 安装的“lib”目录中查找 dll 文件,而我应该在“framework”目录中查找。 因此,当我引用“framework\nunit.framework.dll”dll 时,一切正常。 希望这会有所帮助

【讨论】:

  • 这个答案对我来说是正确的 - 从框架目录引用解决了问题
【解决方案2】:

这是额外的using 行给你带来麻烦。只使用using NUnit.Framework;

NUnit.Core 内部也有一个名为 Test 的类型,而你正在与它发生冲突。

或者您可以使用[TestAttribute] 完全拼出属性部分来解决冲突。

【讨论】:

  • 感谢这个组合......删除和添加我的参考似乎解决了这个问题。
  • @tyndall - 很高兴它有帮助。抱歉,我应该更明确地删除对 NUnit.Core 的引用。正常的测试写作不需要它。
  • 我有同样的错误信息,但这个解决方案不起作用。有趣的是,我在所有关键字(例如 Test、Assert、TestFixture 和 ...
  • @amitkohan - 你确定你引用了 NUnit dll 吗?自从我在 .NET 工作以来已经有很长一段时间了,但我认为 NUnit 的结构并没有太大变化。
【解决方案3】:

您缺少类顶部的 [TestFixture] 属性,此外,您只需为 NUnit 包含以下用法: using NUnit.Framework;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;

namespace MyNamespace
{
    [TestFixture]
    public class LoginTests
    {
        [Test]
        public void CanLogin()
        {
        }
    }
}

【讨论】:

  • 我同意。 [TestFixture] 不允许我在没有参数的情况下使用它。以前从未见过。但我想我在某处读到过,简单的测试类不再需要它。但我无法弄清楚 [Test] 问题。
猜你喜欢
  • 2011-02-23
  • 2011-02-19
  • 2016-11-25
  • 2012-03-03
  • 1970-01-01
  • 1970-01-01
  • 2012-12-27
  • 1970-01-01
  • 2013-09-24
相关资源
最近更新 更多