我有一个数千个NUnit测试的列表,我想要运行(由另一个工具自动生成)。 (这是所有测试的子集,并经常更改)
我希望能够通过NUnit-Console.exe运行这些。 不幸的是,/ run选项只接受一个直接的文件列表,在我的情况下,这些文件不适合单个命令行。我希望它从文件名中提取列表。
我很欣赏我可以使用类别,但我想要运行的列表经常更改,所以我不想开始更改源代码。
有没有人知道是否有一种干净的方式让NUnit运行我指定的测试? (我可以通过完整的命令行将其分解为一系列较小的NUnit-console调用,但这不是很优雅)
(如果不可能,也许我应该将其添加为NUnit功能请求。)
答案 0 :(得分:3)
得到了Charlie Poole(来自NUnit开发团队)的回复,目前这不可能,但已被添加为NUnit 2.6的功能请求
答案 1 :(得分:1)
我看到你在说什么,但就像你说你可以从命令行运行一个夹具。
nunit-console /fixture:namespace.fixture tests.dll
如何在同一个灯具中生成所有测试?或者将它们全部放在同一个组件中?
nunit-console tests.dll
答案 2 :(得分:0)
如nunitLink中所述,我们需要提及场景/测试用例名称。它很简单,但它有一点诀窍。直接提及测试用例名称将无法达到目的,您将最终执行0个测试用例。我们需要写出相同的确切路径。
我不知道它如何适用于其他语言,但使用c#我找到了解决方案。每当我们创建一个功能文件时,相应的feature.cs文件就会在Visual Studio中创建。单击featureFileName.feature.cs并查找命名空间并将其保留(第1部分)
namespace MMBank.Test.Features
向下滚动,您将获得班级名称。请注意,并将其放在一边(第2部分)
public partial class HistoricalTransactionFeature
继续向下滚动,你会看到nunit基本上理解执行的代码。
[NUnit.Framework.TestAttribute()]
[NUnit.Framework.DescriptionAttribute("TC_1_A B C D")]
[NUnit.Framework.CategoryAttribute("MM_Bank")]
在代码下方,您可以看到很可能是TC_1_ABCD(某些参数)的函数/方法名称
public virtual void TC_1_ABCD(string username, string password, string visit)
你将有多种基于no的方法。您在要素文件中的方案。请注意您要执行的方法(测试用例)并将其保留(第3部分)
现在用点整理所有部分。最后你会看到类似的东西,
MMBank.Test.Features.HistoricalTransactionFeature.TC_1_ABCD
就是这样。同样,您可以从多个要素文件创建测试用例名称,并将它们堆叠在文本文件中。每个测试用例名称应该在不同的行中。对于命令,您可以使用命令提示符浏览上面的nunit链接以执行。