【问题标题】:NUnit: TestClass does not have any testsNUnit:TestClass 没有任何测试
【发布时间】:2013-07-25 16:13:30
【问题描述】:

我正在尝试通过运行一些单元测试来测试 NUnit。然而,我注意到一件事。在 NUnit 版本 2.6.2(最新版本)中,当我导入测试 dll 文件时,测试在适当的地方通过和失败,它们给了我正确的警告、消息和指示符。

但是,在 NUnit 版本 2.4 RC1 中,相同的单元测试将被忽略。错误消息显示:“TestClass 没有任何测试”,但它确实包含测试。

这是为什么?我正在尝试验证旧版本的软件,我需要在旧版本上运行单元测试。

我用这个例子来运行测试:http://www.codeproject.com/Articles/178635/Unit-Testing-Using-NUnit

【问题讨论】:

  • 您能否在任何测试中提供代码 sn-p?尽可能简单...
  • 看看你在两个测试项目中的引用是我唯一的猜测
  • @HuorSwords,代码 sn-ps 和所有源代码都可以在 CodeProject 上免费下载:codeproject.com/Articles/178635/Unit-Testing-Using-NUnit 向下滚动以查看用于测试的 sn-ps。

标签: c# nunit


【解决方案1】:

如果你从引用的 url 复制了 sn-p 代码,你必须有这样的东西:

[TestFixture]
public class TestClass
{
    [TestCase]
    public void AddTest()
    {
        MathsHelper helper = new MathsHelper();
        int result = helper.Add(20, 10);
        Assert.AreEqual(30, result);
    }

    [TestCase]
    public void SubtractTest()
    {
        MathsHelper helper = new MathsHelper();
        int result = helper.Subtract(20, 10);
        Assert.AreEqual(10, result);
    }
}

但是,如果您查看 NUnit 版本 2.4 (here) 的文档,您可以看到指示测试的 Property 方法不是 [TestCase]。请改用[Test]

[TestFixture]
public class TestClass
{
    [Test]
    public void AddTest()
    {
        MathsHelper helper = new MathsHelper();
        int result = helper.Add(20, 10);
        Assert.AreEqual(30, result);
    }

    [Test]
    public void SubtractTest()
    {
        MathsHelper helper = new MathsHelper();
        int result = helper.Subtract(20, 10);
        Assert.AreEqual(10, result);
    }
}

【讨论】:

  • 哦,我明白了。我现在会仔细检查。
  • 是的,我在构建更改并保存它们后让它工作。谢谢:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-23
  • 1970-01-01
  • 2020-03-18
  • 1970-01-01
  • 1970-01-01
  • 2011-01-19
  • 1970-01-01
相关资源
最近更新 更多