【问题标题】:Run all tests in a test class using TestDriven.NET and NUnit使用 TestDriven.NET 和 NUnit 在测试类中运行所有测试
【发布时间】:2012-07-03 01:40:13
【问题描述】:

注意:我在这个项目中使用 TestDriven.NET 3.0.2749 和 NUnit 2.6.0.12051。

我已经安装了 TestDriven.NET 和 NUnit,并试图让 TestDriven.NET 通过右键单击上下文菜单运行测试类中的所有测试。

来自 TestDriven.NET 文档:

如果选择了代码编辑器窗口,要执行的测试将由插入符号的位置决定;通过右键单击测试方法内的任意位置并选择“运行测试”来执行单个测试,如图 2 所示;测试夹具中的所有测试都是通过右键单击类内部(但在任何方法之外)并选择“运行测试”来执行的;命名空间中的所有测试都是通过在命名空间内右键单击并选择“运行测试”来执行的。

我可以使用右键单击上下文菜单成功运行特定的测试方法,并且 NUnit GUI 运行程序将成功运行给定类的所有测试,但我想使用 TestDriven.NET 为该任务提供的快速访问,同时我正在开发。

当我将插入符号放在测试方法之外时收到以下错误:

目标类型不包含来自已知测试框架或“主要”方法的测试。

更新 1:添加示例代码。

要测试的示例代码:

namespace TDDN.Framework
{
    public class ExampleClass
    {
        public ExampleClass() { }

        public Int32 Add(Int32 x, Int32 y)
        {
            return x + y;
        }

        public Int32 Subtract(Int32 x, Int32 y)
        {
            return x - y;
        }
    }
}

单元测试:

using NUnit.Framework;
using TDDN.Framework;

namespace TDDN.UnitTests
{
    [TestFixture] // Cursor caret placed here results in error above.
    public class ExampleClassTests
    {
        [Test] // Cursor caret placed here works.
        public void Add_SumTwoIntegers_SumReturned()
        {
            ExampleClass exampleClass = new ExampleClass();

            Assert.AreEqual(10, exampleClass.Add(5, 5));
        }

        [Test] // Cursor caret placed here works also.
        public void Subtract_SubtractTwoIntegers_DifferenceReturned()
        {
            ExampleClass exampleClass = new ExampleClass();

            Assert.AreEqual(5, exampleClass.Subtract(10, 5));
        }
    }
}

【问题讨论】:

  • 请发布您的代码,因为它应该可以工作......也许您使用的属性有问题。

标签: visual-studio-2010 unit-testing nunit testdriven.net


【解决方案1】:

我刚刚在使用相同版本的 TestDriven.NET 和 NUnit(3.0.2749 和 2.6.0.12051)时遇到了这个确切的问题。

问题在于 TestDriven.NET 3.0 不支持 NUnit 2.6,因此它无法识别 NUnit [Test] 和 [TestFixture] 属性。因此,TestDriven.NET 仍将运行您的个人测试功能,但作为 Ad Hoc(测试时显示在 Pass/Fail/Skip 消息的末尾)。

我能够通过安装更新​​版本的 TestDriven.NET (3.3 Beta 2) 来解决这个问题,它完全支持 NUnit 2.6(请参阅:https://groups.google.com/d/msg/nunit-discuss/pTCDx2_L8jU/TlpULzE36wEJ)现在您应该能够运行夹具中的所有测试立即查看测试输出末尾显示的 (NUnit 2.6.0)。

【讨论】:

  • 我可以确认您提出的解决方案也适用于我。我安装了 TestDriven.NET 3.4.2784 Beta,当光标插入符号按预期放置在 [TestFixture] 行上时,我能够运行所有测试。谢谢你,克里斯蒂安。
【解决方案2】:

我在插入符号位置上遇到了完全相同的错误消息和类似的行为。

我已经拥有最新版本的 TestDriven.Net。

我的问题是我的新 TestClass 没有指定类别并且被过滤掉了(工具 -> TestDriven.Net -> 常规 -> 类别 -> 在类别中包含测试)。

因此,只需指定正确的类别即可解决我的问题。

这是相同的错误消息,但不同的问题和解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    相关资源
    最近更新 更多