C# 对于大型测试用例集,Nunit测试运行被冻结

C# 对于大型测试用例集,Nunit测试运行被冻结,c#,visual-studio,nunit,resharper,C#,Visual Studio,Nunit,Resharper,Visual Studio 2019版本16.8.4 Resharper版本2020.3.2 Nunit 3.13.1 如果我没有错的话,我应该使用Resharper的测试运行程序 我把我的测试代码放在下面。它没有逻辑,只是创建了一个大的测试用例集。 测试运行程序只是冻结了很长一段时间(正如您在screendump中看到的),并且只在等待20-30分钟后才开始运行测试 在实际开发中,为了实现95%以上的单元测试覆盖率,我们确实有一些测试用例,其中包含80000多个无法拆分或删除的用例。 是否有其

Visual Studio 2019版本16.8.4

Resharper版本2020.3.2

Nunit 3.13.1

如果我没有错的话,我应该使用Resharper的测试运行程序

我把我的测试代码放在下面。它没有逻辑,只是创建了一个大的测试用例集。 测试运行程序只是冻结了很长一段时间(正如您在screendump中看到的),并且只在等待20-30分钟后才开始运行测试

在实际开发中,为了实现95%以上的单元测试覆盖率,我们确实有一些测试用例,其中包含80000多个无法拆分或删除的用例。 是否有其他方法可以使测试运行正常工作

[TestFixture]
public class Test_LargeTestCaseSet
{
    private static IEnumerable<TestCaseData> LargeTestCases()
    {
        for(var i = 0; i < 100000; i++)
        {
            yield return new TestCaseData(i);
        }
    }

    [TestCaseSource(nameof(LargeTestCases))]
    public void LargeTest(int i)
    {
        Assert.AreEqual(i, i);
    }
}
[TestFixture]
公共类测试案例集
{
私有静态IEnumerable LargeTestCases()
{
对于(变量i=0;i<100000;i++)
{
返回新的测试用例数据(i);
}
}
[TestCaseSource(nameof(larGetTestCases))]
公共空间最大值(国际一)
{
断言.AreEqual(i,i);
}
}

是的,有!不要将您的测试声明为100k个单独的测试用例。显然,对于每个单独的测试用例都有一个可视化表示的UI,它无法很好地工作。
相反,只需在测试方法本身内部编写循环。如果希望在每次执行测试时运行所有“测试用例”,请使用
Assert.Multiple
。如果知道第一次遇到的故障就足够了,那么简单的断言.XXX就足够了。

是的,有!不要将您的测试声明为100k个单独的测试用例。显然,对于每个单独的测试用例都有一个可视化表示的UI,它无法很好地工作。
相反,只需在测试方法本身内部编写循环。如果希望在每次执行测试时运行所有“测试用例”,请使用
Assert.Multiple
。如果知道第一次遇到的故障就足够了,简单的
Assert.XXX
就足够了。

如果你能做到这一点,如果你能报告在使用NUni3控制台或NUnitLite的简单批处理运行中是否发生相同的错误,这对应答者是有帮助的。这也有助于你获得有用的答案,因为它澄清了你是否真的需要来自具有resharper知识或nunit知识的人的帮助。@Charlie看起来只有在VS/resharper组合中才会出现相同的行为,因为我在Teamcity试运行中没有看到类似的行为。啊。。。谢谢你的检查。没有一个我可以回答。:-)如果您能够做到这一点,那么如果您可以使用NUni3控制台或NUnitLite报告在简单批处理运行下是否发生相同的错误,这将有助于回答者。这也有助于你获得有用的答案,因为它澄清了你是否真的需要来自具有resharper知识或nunit知识的人的帮助。@Charlie看起来只有在VS/resharper组合中才会出现相同的行为,因为我在Teamcity试运行中没有看到类似的行为。啊。。。谢谢你的检查。没有一个我可以回答。:-)