所有测试在我的系统中创建相同的“根对象”,“根对象”具有多种模式。我需要每个测试来检查每种模式的所有内容。所以我决定在“根对象”中创建一个内部静态属性,我可以在其中覆盖创建时使用的模式。
现在测试行为取决于环境设置。我有相当多的测试,我无法修改每个测试以针对每种可能的模式测试相同的事情。
相反,我想在一个地方设置模式。
当我在R#中点击“Run All Tests”时,我希望所有测试都针对每个静态设置模式运行一次。
有可能吗?
答案 0 :(得分:0)
您可以在NUnit中通过在测试定义的命名空间层次结构的所需级别创建SetUpFixture来执行此操作。该fixture的OneTimeSetUp方法准备环境,OneTimeTearDowm方法在必要时清除它。如果要为整个程序集执行此操作,只需使用任何名称空间外的SetUpFixtureAttribute定义类。
[SetUpFixture]
public static class MySetUpFixture
{
[OneTimeSetUp]
public static void SetUpTestEnvironment()
{
// Set up the environment, possibly leaving information
// for the tests to use in static fields or properties.
}
[OneTimeTearDown]
public static void CleanUpEnvironment()
{
// If any cleanup is needed, do it here
}
}
类和方法不必是静态的,但使用static会让您记住SetUpFixture实例和TestFixture实例之间没有通信这一事实。
您的测试可以简单地使用SetUpFixture创建的环境,也可以查询类的静态属性以更改其行为。