如何在xUnit中运行具有不同环境变量的测试用例?

时间:2017-07-17 08:59:31

标签: c# xunit.net

我想使用不同的自定义环境变量多次运行测试用例。

一个例子:

[Theory]
[InlineData(1)]
[InlineData(2)]
[MyEnvironmentData("foo", "bar", "baz")]
public void MyEnvironmentTest(int arg1)
{
  var foo=MyEnvironment.Get("foo");
  Assert.Contains(foo, new []{"bar", "baz"});
}

测试用例应该运行四次:

  1. arg1 = 1,MyEnvironment.Get(" Foo")=" bar"
  2. arg1 = 1,MyEnvironment.Get(" Foo")=" baz"
  3. arg1 = 2,MyEnvironment.Get(" Foo")=" bar"
  4. arg1 = 2,MyEnvironment.Get(" Foo")=" baz"
  5. 还可以有许多MyEnvironmentData属性。在这种情况下,应测试所有排列。

    我以前在xUnit.Net v1中使用自定义TestClassCommand完成了此操作,我已在EnumerateTestCommands方法中实现了排列逻辑,并自定义了TestCommand在每次测试运行之前设置环境变量并在之后清理。所有其他方法都被委托给xUnit自己的TestClassCommands和TestCommands。

    在xUnit v2中实现类似设置的最佳方法是什么?

0 个答案:

没有答案