NUnit [Test]不是有效的属性。

4

我已经将必要的程序集包含在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()
        {
        }
    }
}

1
你在项目中引用了程序集吗? - Andrew Hare
尝试编译并粘贴第一个错误信息。 - Grzenio
2
顺便提一下,你只需要的命名空间是nunit.framework。 - Adam Lear
3个回答

7
我曾经遇到过类似的问题,使用2.5.3版本时出现了这个问题。问题在于我在nunit安装目录下的“lib”目录中寻找dll文件,而实际上应该在“framework”目录中寻找。所以当我引用“framework\nunit.framework.dll”时,一切都正常工作了。希望这可以帮助你。

1
这个答案对我的部分非常准确 - 引用框架目录解决了问题。 - Hauge

5

你遇到了一些麻烦,可能是由于额外的using语句造成的。只需使用using NUnit.Framework;

NUnit.Core内部还有一个名为Test的类型,你正在与之冲突。

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


通过组合这个...和删除、添加我的引用,似乎解决了这个问题。 - BuddyJoe
@tyndall - 很高兴能帮到你。抱歉,我应该更明确地指出要删除对 NUnit.Core 的引用。在正常的测试编写中,你不需要它。 - Mike Two
我有相同的错误信息,但这个解决方案不起作用。有趣的是,我在所有关键字上都得到了红色波浪线,例如Test、Assert、TestFixture等等。 - amit kohan
@amitkohan - 你确定引用了NUnit的dll文件吗?我已经很久没有在.NET上工作了,但我认为NUnit的结构并没有改变那么多。 - Mike Two

0

你的类顶部缺少 [TestFixture] 属性,此外,你只需要在 NUnit 中包含以下 using: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()
        {
        }
    }
}

1
我同意。[TestFixture]不允许我在没有参数的情况下使用它。以前从未见过这种情况。但我记得在某个地方读到过,对于简单的测试类,它不再需要了。但我无法解决[Test]的问题。 - BuddyJoe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接