ReSharper单元测试运行器为外部类提供Inconclusive

时间:2012-08-01 13:22:47

标签: c# unit-testing nunit resharper

我使用nUnit编写单元测试,测试结构与Phil Haack's post

类似
namespace MyNamespace
{
    [TestFixture]
    public class ClassToTest
    {
        [TestFixture]
        public class MethodToTest
        {
            [Test]
            public void ThrowsArgumentNullException_OnNullIndex()
            {
                ...
            }

            .. more tests for the method ..
        }

        [TestFixture]
        public class AnotherMethodToTest
        {
            [Test]
            public void ThrowsArgumentNullException_OnNullIndex()
            {
                ...
            }

            .. more tests for the method ..
        }
    }
}

我的问题是,对于用于对单元测试进行分组的外部类,我得到不确定。我曾尝试在外部和/或内部类中使用和不使用[TestFixture],但它总是让我不确定。

我认为正确的行为应该是从内部类测试中显示单元测试状态。有任何想法吗?

Inconclusive is appearing for the outer class

更新

一个丑陋的修复程序似乎正在为外部类创建一个虚拟测试,然后在其上放置属性Ignore

[Test, Ignore]
public void DummyTest()
{
    Assert.IsTrue(true);
}

更新2

Channs& Wayne是正确的,外部类只用于分组,因此从类更改为命名空间是最佳解决方案。

3 个答案:

答案 0 :(得分:7)

您的外部类仅对相关方法进行分组,建议将其替换为命名空间。

namespace MyNamespace.ClassToTest
{
  ...
}

答案 1 :(得分:6)

你可能有一个没有[Test]的[TestFixture] - 也许外层没有任何自己的测试?在这种情况下,为什么不只使用命名空间?

答案 2 :(得分:1)

只是一个猜测,类上的属性会导致您的类被作为一个测试类处理,但是类中没有测试它会导致我们的不确定性:

[TestFixture]     
public class ClassToTest