使用NUnit3控制台使用不同的TestFixture参数执行测试

时间:2016-07-04 08:18:32

标签: c# nunit nunit-3.0

有没有人知道是否可以使用nunit3控制台执行不同TestFixture参数的测试?我有以下代码:

  [TestFixture(Browser.Firefox)] 
  [TestFixture(Browser.Chrome)]
  public class Tests : BaseTestCase

我想用Browser.Chrome设置执行​​测试。 是否可以从具有TestFixture参数= Browser.Chrome?

的某个dll运行所有测试

提前感谢您提供的信息!

2 个答案:

答案 0 :(得分:0)

谢谢你的帮助!我试过你建议的方式,但没有任何成功。当我设置测试类的属性时,我无法获得"浏览器"值运行时。 "浏览器"包含设置为测试的所有属性,而不是当前运行测试的属性。

作为我的问题的一个工作,我找到了以下解决方案: 我有一个方法,用于通过TestFixture"浏览器"从程序集中查找所有测试类。设置为" Chrome"。找到类名后,将它们添加到txt文件中,最后文件如下所示:

TestClass1(Chrome)
TestClass2(Chrome)
TestClass3(铬)

当我有这样的文件时,我可以使用以下命令运行测试: nunit3-console" TestsDllPath" --testlist =" TextFilePath"

这种方法的一大缺点是每次添加测试类时都应该运行创建测试列表文件的方法。

答案 1 :(得分:0)

问题的两个部分:

  1. 可以按照您描述的方式创建灯具。你试过了吗?枚举的值将传递给fixture构造函数,当然必须编写它以获取这样的枚举。我没有尝试过,所以可能需要将其设置为int,但这很容易改变。

  2. 如果您首先找出NUnit给夹具所代表的测试的名称,那么选择一个要运行的夹具应该很容易。它可能类似于" Tests(Chrome),但您应该使用--explore或运行测试并查看XML输出来检查。知道名称后,只需使用--where选项运行即可。使用这样的选项运行所有测试将是一个使用的问题 - 使用正则表达式来获取这些测试。

    如果 - where" test =〜/(Chrome)/"并不是一个足够好的选择器,那么我会用你自己定义的一些常量字符串替换enum,例如" BrowserIsChrome"您可以将它们转换为构造函数中的枚举。只需使字符串足够独特,您可以在--where选项中测试它们。