是否可以针对特定(长)测试列表运行NUnit

时间:2011-08-18 09:49:07

标签: nunit nunit-console

我有一个数千个NUnit测试的列表,我想要运行(由另一个工具自动生成)。 (这是所有测试的子集,并经常更改)

我希望能够通过NUnit-Console.exe运行这些。 不幸的是,/ run选项只接受一个直接的文件列表,在我的情况下,这些文件不适合单个命令行。我希望它从文件名中提取列表。

我很欣赏我可以使用类别,但我想要运行的列表经常更改,所以我不想开始更改源代码。

有没有人知道是否有一种干净的方式让NUnit运行我指定的测试? (我可以通过完整的命令行将其分解为一系列较小的NUnit-console调用,但这不是很优雅)

(如果不可能,也许我应该将其添加为NUnit功能请求。)

3 个答案:

答案 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链接以执行。