这是我的TestFixture类:
namespace TestApplication.Tests
{
[TestFixture]
[Property("type","smoke")]
public class LoginFixture
{
[Test]
[Property("role","user")]
public void can_login_with_valid_credentials()
{
Console.WriteLine("Test")
}
}
}
如您所见,我为测试和测试混合级别设置了Nunit“属性”属性。
很容易从测试级别获取“属性”值:
var test = TestContext.CurrentContext.Test.Properties["role"]
但是不明白如何从TestFixture级别获取“Property”值。这不起作用
TestContext.CurrentContext.Test.Properties["type"]
答案 0 :(得分:3)
您需要分别跟踪TestFixture上下文,这可以使用[TestFixtureSetup]
方法完成:
[TestFixture]
[Property("type", "smoke")]
public class ContextText
{
private TestContext _fixtureContext;
[TestFixtureSetUp]
public void TestFixtureSetup()
{
_fixtureContext = TestContext.CurrentContext;
}
[TestCase]
public void TestFixtureContextTest()
{
// This succeeds
Assert.That(_fixtureContext.Test.Properties["type"], Is.EqualTo("smoke"));
}
[TestCase]
public void TestCaseContextTest()
{
// This fails
Assert.That(TestContext.CurrentContext.Test.Properties["type"], Is.EqualTo("smoke"));
}
}
上面的示例类似于NUnit 2.6.3源代码中包含的单元测试。对于实际的NUnit单元测试,请参阅downloadable source code中的TestContextTests.cs。