在NUnit中动态创建测试

Ray*_*Ray 34 .net nunit unit-testing

使用Nunit,我希望能够编写一个测试夹具,它将读取特定目录中的所有文件名,并为每个文件创建一个测试.

我可以很容易地编写一个扫描目录的测试方法并完成所有测试,但是当我运行NUnit时,我希望能够单独看到每个测试.

这甚至可能吗?

Ray*_*Ray 55

我找到了一种适合我目的的方法

有一个测试用例,并使用TestCaseSource属性标记它

[Test, TestCaseSource("GetTestCases")]
public void TestFile(string filename)
{
    //do test
}
Run Code Online (Sandbox Code Playgroud)

然后编写GetTestCases以读取目录中的所有文件名

private static string[] GetTestCases()
{
    return GetAllFilesInCurrentDirectory();
}
Run Code Online (Sandbox Code Playgroud)

然后当我启动NUnit时,我会得到一个要运行的测试列表(列在TestFile下).