有没有一种方法可以在执行测试时以编程方式获取选定的测试类别?类似的东西 TestContext.Properties["_SELECTCATEGORIES"]
基本上我有从数据库加载测试数据的测试用例,并且由于我有很多测试,所以该项目需要很长时间才能加载。我试图找到一种方法,如果未选择类别,则 testCaseSources 不返回任何内容
已更新
似乎没有任何直接的方法可以在 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
课程的更多内容可以在这里找到。当然,要使用这种方法解决问题,需要您预先加载整个测试程序集并循环遍历所有测试用例,这在您的场景中显然是不合需要的。
TestContext.CurrentContext.Test.Properties[“类别”]
如果尝试从测试装置(而不是测试方法)读取它,则将代码放入 [OneTimeSetUp]