有没有一种方法可以在执行测试时以编程方式获取所选的测试类别?TestContext.Properties ["_ SELECTCATEGORIES"]行中的内容
基本上我有测试用例从db加载测试数据,因为我有很多测试,项目需要很长时间才能加载.我试图找到一种方法,如果未选择类别,testCaseSources不返回任何内容
更新
似乎没有任何直接的方法可以在NUnit 框架本身的 NUnit 测试程序集中识别或加载选定的类别。
使用反射,您也许可以扫描用或Categories装饰的类中的属性。通过将这些类别与您想要加载的类别相匹配,您可以在加载之前过滤出要加载的测试。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"));
}
Run Code Online (Sandbox Code Playgroud)
TestContext可以在此处找到有关该课程的更多内容。当然,要使用这种方法解决问题,需要您预先加载整个测试程序集并循环遍历所有测试用例,这在您的场景中显然是不可取的。