0

我有以下测试设置。

[TestClass,
Isolated]
public class TestClass
{
    public TestClass()
    {
    }

    private TestContext testContextInstance;
    public TestContext TestContext
    {
        get { return testContextInstance; }
        set { testContextInstance = value; }
    }

    [ClassInitialize,
    Isolated]
    public static void InitializeRunState(TestContext testContext)
    {
        Helpers.SetupMocks();
        //do some class init stuff
    }

    [TestInitialize]
    public void InitializeTestState()
    {
        Helpers.SetupMocks();
    }

    [TestMethod]
    public void Test()
    {
        //execute test
    }
}

Helpers.SetupMocks()方法中,我正在调用Isolator.Swap.AllInstances<T>().

只要我不执行负载测试,这就会很好。一旦我配置了一个负载测试,它将执行TestTypeMock 方法开始抛出这个异常:

TypeMock.TypeMockException: *** 不能对一个类型多次调用 Swap.AllInstances()。

有没有办法避免这种情况?我有什么配置错误吗?

4

1 回答 1

2

免责声明我在 Typemock 工作

首先请注意,我们抛出这个异常是因为多次伪造一个类型的所有实例确实没有意义,我们想让用户知道他可能犯了一个错误。
我认为问题在于,当您运行负载测试时,mstest 会并行运行测试类的几个实例。
在这种情况下,您应该将对 Isolator.Swap.AllInstances() 的调用从类设置转移到测试方法。
如果 mstest 运行不会在同一个类中并行运行测试,它可能会起作用。不幸的是,似乎 mstest 没有用于覆盖此行为的命令行参数。

于 2009-07-30T13:10:43.700 回答