有没有一种程序化的方法在执行测试时获取所选测试类别? 类似于TestContext.Properties["_SELECTCATEGORIES"]
基本上,我有从数据库加载测试数据的测试用例,由于我有很多测试用例,因此项目加载需要很长时间。我正在尝试找到一种在未选择类别时使testCaseSources返回空的方法。
更新
在 NUnit 框架 中,似乎没有直接的方法来识别或加载测试程序集中选择的类别。
使用反射,您可以扫描带有 TestAttribute
或 TestFixtureAttribute
的类中的属性 Categories
。通过将这些类别与您想要加载的类别进行匹配,您可以在加载之前过滤出要加载的测试。
此外,还有 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
类的更多信息。当然,要解决这种方法的问题,需要预先加载整个测试程序集并循环遍历所有测试用例,这显然不是您的情况所期望的。