所有测试在我的系统中创建相同的“根对象”并且“根对象”有多种模式。我需要每个测试来检查每个模式的所有内容。所以我决定在“根对象”中创建一个内部静态属性,我可以在其中覆盖创建时使用的模式。
现在测试行为取决于环境设置。我有大量的测试,我无法修改每个测试以针对每种可能的模式测试相同的东西。
相反,我想在一个地方设置模式。
当我在 R# 中点击“运行所有测试”时,我希望所有测试针对每个静态设置模式运行一次。
可以吗?
最佳答案
您可以在 NUnit 中执行此操作,方法是在您的测试定义的命名空间层次结构的所需级别创建一个 SetUpFixture。该装置的 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
}
}
类和方法不必是静态的,但使用静态会让您记住一个事实,即 SetUpFixture 实例和 TestFixture 实例之间没有通信。
您的测试可以简单地使用由 SetUpFixture 创建的环境,或者可以查询类的静态属性以更改它们的行为。
关于c# - 使用不同的环境设置使所有测试运行多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35127219/