以编程方式获取 nUnit 选择的类别

问题描述 投票:0回答:2

有没有一种方法可以在执行测试时以编程方式获取选定的测试类别?类似的东西 TestContext.Properties["_SELECTCATEGORIES"]

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

c# nunit
2个回答
3
投票

已更新

似乎没有任何直接的方法可以在 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
课程的更多内容可以在这里找到。当然,要使用这种方法解决问题,需要您预先加载整个测试程序集并循环遍历所有测试用例,这在您的场景中显然是不合需要的。


0
投票

TestContext.CurrentContext.Test.Properties[“类别”]

如果尝试从测试装置(而不是测试方法)读取它,则将代码放入 [OneTimeSetUp]

© www.soinside.com 2019 - 2024. All rights reserved.