在 Visual Studio 负载测试中使用 TypeMock Isolator.Swap.AllInstances<T>?
Posted
技术标签:
【中文标题】在 Visual Studio 负载测试中使用 TypeMock Isolator.Swap.AllInstances<T>?【英文标题】:Using TypeMock Isolator.Swap.AllInstances<T> in a Visual Studio Load Test? 【发布时间】:2009-07-30 12:32:42 【问题描述】:我有以下测试设置。
[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>()
。
只要我不执行负载测试,它就可以很好地工作。一旦我配置了将执行Test
方法的负载测试,TypeMock 就会开始抛出此异常:
TypeMock.TypeMockException: *** 不能对一个类型多次调用 Swap.AllInstances()。
有没有办法避免这种情况?是不是我的配置有问题?
【问题讨论】:
【参考方案1】:免责声明我在 Typemock 工作
首先请注意,我们抛出此异常是因为多次伪造一个类型的所有实例确实没有意义,我们想让用户知道他可能犯了一个错误。 我认为问题在于,当您运行负载测试时,mstest 会并行运行测试类的几个实例。 在这种情况下,您应该将对 Isolator.Swap.AllInstances() 的调用从类设置转移到测试方法。 如果 mstest 运行不会在同一个类中并行运行测试,它可能会起作用。 不幸的是,似乎 mstest 没有用于覆盖此行为的命令行参数。
【讨论】:
以上是关于在 Visual Studio 负载测试中使用 TypeMock Isolator.Swap.AllInstances<T>?的主要内容,如果未能解决你的问题,请参考以下文章