使用 Nunit 或 Jenkins 多次运行 TestFixture

sch*_*arz 3 c# nunit jenkins jenkins-plugins

我有一个包含多个测试的 TestFixture。我想多次运行这个 TestFixture 来收集一些统计数据,但似乎找不到合理的方法。RepeatAttribute 不能用于 TestFixture。

我可以使用 Nunit 或 Jenkins(带有 nunit 插件)。有任何想法吗?否则我最终会将其编码到测试中或使用奇怪的批处理脚本。

Rob*_*use 5

正如 Steve 所说,参数化夹具可以工作,但如果您想运行数百次测试,复制和粘贴这么多属性会变得相当乏味。

NUnit 中更好的选择是在您的装置上使用TestFixtureSource属性。例如,以下代码将运行您的测试装置 100 次;

[TestFixtureSource("TestData")]
public class MultipleRunFixture
{
    int _counter;

    public MultipleRunFixture(int counter)
    {
        _counter = counter;
    }

    public static IEnumerable<int> TestData =>
        Enumerable.Range(0, 100);

    [Test]
    public void TestMethod()
    {
        // TODO: Add your test code here
        Assert.Pass($"Test run {_counter}");
    }
}
Run Code Online (Sandbox Code Playgroud)