2015-07-19 140 views
0

我想基于这个回购协议所定义的测试来创建测试套件:C#单元测试

https://github.com/json-schema/JSON-Schema-Test-Suite

测试在一些JSON文件中定义的,即可以包含任何数量的测试。

很显然,我不想为这个回购中定义的每个测试编写一个测试,我想自动发现测试并运行它们。但我想使用像NUnit或xUnit这样的标准单元测试框架。但是,如果我只是在单个测试中遍历所有文件,那么我不会从中获得更多信息。这将只是一个单一的测试,失败或通过詹金斯或团队城市。我当然可以输出所有的相关数据,但这并不好。

在运行我的测试套件时,是否有办法让每个测试都显示为单个单元测试,而无需实际编写每个测试方法?

编辑: 我想我正在寻找什么像xUnit ClassData像这里描述Pass complex parameters to [Theory]。但接下来的问题是,如果我可以让每个测试显示不同的名称;)

我需要在Google上搜索的是“数据驱动的单元测试”。

回答

0

您可以使用T4模板或其他自动方式生成代码。这里的巨大优势在于测试本身已经处于一个体面的数据结构中(你不能把它放在更好的位置上)。

0

NUnit TestCaseSource正是我想要的。

@Kieren Johnstone我宁愿不做代码生成。为了简单起见,我考虑过这一点并决定反对。