IEnumerable<T> 作为数据驱动测试的数据源

IEnumerable<T> as a DataSource for a data driven test

是否可以在 .Net 中创建使用 IEnumerable<T> 作为 DataSource 的数据驱动测试?

问题是:
有一个 class 我想测试。它的行为略有不同,具体取决于它作为构造函数参数接收的 int 值。
并且有一个静态方法 returns IEnumerable<int> 该构造函数参数的所有可能值。

已找到解决办法。不是很满意,但是很管用。

[DataSourceGenerator("source.csv")]
public class DataDrivenTests
{
    public TestContext TestContext { get; set; }

    [TestMethod]
    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "source.csv", "source#csv", DataAccessMethod.Sequential)]
    //The source is generated automatically by DataSourceGenerator attribute
    public void DataDrivenTest()
    {
        //Here you can implement a data driven test of your own
    }
}

[AttributeUsage(AttributeTargets.Class)]
internal sealed class DataSourceGeneratorAttribute : Attribute
{
    public DataSourceGeneratorAttribute(string fileName)
    {
        var csvContent = GenerateCsvContent();

        File.WriteAllText(fileName, csvContent);
    }
    private string GenerateCsvContent()
    {
        //Here you can generate content for your csv
    }
}