6

有没有办法在执行测试时以编程方式获取选定的测试类别?TestContext.Properties["_SELECTCATEGORIES"] 行中的某些内容

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

4

1 回答 1

2

更新

似乎没有任何直接的方法可以在NUnit 框架本身的 NUnit 测试程序集中识别或加载所选类别。

使用反射,您也许可以扫描用orCategories装饰的类中的属性。通过将这些类别与您要加载的类别相匹配,您可以在加载之前过滤掉要加载的测试。TestAttributeTestFixtureAttribute

然后是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可以在此处找到有关该课程的更多内容。当然,用这种方法解决问题需要您预先加载整个测试程序集并循环所有测试用例,这在您的场景中显然是不可取的。

于 2012-06-13T15:39:44.667 回答