
[英]How to test .NET Standard 2 library with either NUnit, xUnit or MSTest from either Rider or VS 2017?
[英]Selective Test Runner for NUnit, MSTest and xUnit [closed]
我想创建一个自定义的TestRunner,它允许为以下单元框架运行单元测试:
此自定义测试运行程序应该可以定义运行测试的条件。 例如:
我找到了NUnit的解决方案,在xUnit中我应该实现ITestRunner。 但是您知道我如何从MSTest的代码运行测试吗?
你知道我如何定义标准只运行上面定义的填充标准的方法吗?
您可以尝试Fixie (仍处于开发阶段)。 它允许您编写自定义约定以确定什么是测试,无论使用何种单元测试框架。 例如,您可以编写一个约定,以“ Tests”结尾的类中将所有无效的公共方法标识为单元测试,而与属性无关,等等(实际上,这是其默认约定)。 它非常灵活。 要编写自定义约定,需要在程序集中实现Convention类,Fixie将发现它。 阅读它的文档以获取更多信息,并查看项目中包含的优秀样本和测试。
它已经通过TestDriven.net与Visual Studio集成。 如果你没有那个,那么你需要通过它的控制台运行它。
感谢您回复我的评论。 我想我可以建议你一个可能的解决方案,我自己也没试过。 但我相信这是可行的。 这个建议更像是一种程序化方法,与您提到的每个测试框架(NUnit,MSTest,xUnit)提供的一些内置命令行选项相混合。
如果所有这些测试框架都具有执行测试的能力(无论是通过命令行选择性地,作为一个组还是作为整个测试套件),您都可以始终使用带有预定义参数的Console App来根据需要执行这些测试。 。
据我所知,所有这些测试框架都提供了命令行测试运行器和选项。 但是根据提供的选项,它们可能会有所不同。
首先要分析每个测试框架的能力提供命令行参数,以便您可以根据需要执行测试。
MSTest.exe命令行提供了一些您可能想要查看的选项。
/测试
/类别
是您可以研究的一些选项。
NUnit控制台还提供了一些选项。 但是我还没有研究太多。
XUnit有一个控制台测试运行器 ,您可以查看更多(即xunit.console MyTestLibrary.dll)。
值得注意的是,xUnit.NET和NUnit都是可扩展的。 因此,如果您没有所需的选项,可以考虑扩展框架提供的选项。 甚至沿着创建自己的控制台跑步者的道路并不那么难。 与MSTest不同,这两个框架都是开源的,因此您可以看到它们提供的选项。 鉴于有选择地运行测试是关键要求,我认为这些框架具有内置选项,您不必进行太多自定义。
一旦您确定了这些框架的控制台对应项的功能,您就可以继续创建客户端应用程序/控制台应用程序,您可以指定要有选择地运行的测试。 此客户端应用程序将有选择地向每个运行程序提供测试并执行Console.exe。 这应该选择性地运行您的测试。 您可以通过提供某种可配置的元数据/清单文件来进一步自动化。 例如,您可以指定要从元数据或清单文件运行的各种测试,并且控制台运行器将从元数据文件中读取。
根据您的客户端应用程序配置,如果它是控制台应用程序,您也可以通过构建系统调用。
希望这会指向你想要实现的方向。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.