首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MsTest并行化

MsTest并行化
EN

Stack Overflow用户
提问于 2019-06-23 17:03:28
回答 1查看 647关注 0票数 1

我运行两个并行共享资源的测试。

我预计Test1会失败,但是事实证明,MsTestV2创建了测试类的一个新实例,因此成员变量不被共享。

通过检查每个测试的对象哈希码以及调用构造函数的次数来验证这一点。

代码语言:javascript
复制
[TestClass]
public class ParallelizationTest
{
    private int psw = 0;

    public ParallelizationTest()
    {
        Console.Out.WriteLine("Ctor: ParallelizationTest");
    }

    [TestMethod]
    public void Test1()
    {
        Console.Out.WriteLine("Test1 started with HashCode: " + GetHashCode());
        Thread.Sleep(5000);
        Assert.AreEqual(psw, 0);
        Console.Out.WriteLine("Test1 ended");
    }

    [TestMethod]
    public void Test2()
    {
        Console.Out.WriteLine("Test2 started with HashCode: " + GetHashCode());
        psw = 123;
        Assert.AreEqual(psw, 123);
        Console.Out.WriteLine("Test2 ended");
    }
}

MsTestV2被配置为(Worker设置为2):

代码语言:javascript
复制
  <RunSettings>
  <RunConfiguration>
    <TargetPlatform>x86</TargetPlatform>
    <MaxCpuCount>1</MaxCpuCount>
    <DisableParallelization>false</DisableParallelization>
    <TestSessionTimeout>1000000</TestSessionTimeout>
  </RunConfiguration>
  <MSTest>
    <Parallelize>
      <Workers>2</Workers>
      <Scope>MethodLevel</Scope>
    </Parallelize>
  </MSTest>
</RunSettings>

MsTest框架是否保证创建测试类的新实例?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-24 13:03:55

MSTest为每个测试方法创建一个新的TestClass实例。MSTestV2也在继续这种行为。.runsettings不影响这种行为。

请考虑在MSTestV2文档回购上提交一个问题,以使文档得到澄清。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56726106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档