在执行测试时,是否有一种以编程方式获取所选测试类别的方法?有些东西 TestContext.Properties [ “_ SELECTCATEGORIES”]
基本上我有测试用例从db加载测试数据,因为我有很多测试,项目需要很长时间才能加载。我试图找到一种方法让testCaseSources在没有选择类别的情况下不返回任何内容
答案 0 :(得分:2)
<强>已更新强>
在 NUnit Framework 本身的NUnit测试程序集中,似乎没有任何直接的方法来识别或加载所选类别。
使用反射,您可以扫描使用Categories
或TestAttribute
修饰的类中的属性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。当然,要解决这种方法的问题,需要先加载整个测试程序集并在所有测试用例中循环,这在你的场景中显然是不可取的。