以编程方式获取nUnit选定的类别

时间:2012-06-13 15:04:35

标签: c# nunit

在执行测试时,是否有一种以编程方式获取所选测试类别的方法?有些东西 TestContext.Properties [ “_ SELECTCATEGORIES”]

基本上我有测试用例从db加载测试数据,因为我有很多测试,项目需要很长时间才能加载。我试图找到一种方法让testCaseSources在没有选择类别的情况下不返回任何内容

1 个答案:

答案 0 :(得分:2)

<强>已更新

NUnit Framework 本身的NUnit测试程序集中,似乎没有任何直接的方法来识别或加载所选类别。

使用反射,您可以扫描使用CategoriesTestAttribute修饰的类中的属性TestFixtureAttribute。通过将这些类别与您要加载的类别进行匹配,您可以在加载之前过滤掉要加载的测试。

然后有TestContext.Test.Properties密钥_CATEGORIES(在NUnit 2.5.7及更高版本中可用):

[Test]
[Category("Hello")]
public void TestCategory()
{
  Assert.IsTrue(((ArrayList)TestContext.CurrentContext.Test.Properties["_CATEGORIES"]).Contains("Hello"));
}

可以在TestContext课程中找到更多内容here。当然,要解决这种方法的问题,需要先加载整个测试程序集并在所有测试用例中循环,这在你的场景中显然是不可取的。