Unit testing 当有超过128个测试时,为什么MSTest无法部署一些测试输入文件?

Unit testing 当有超过128个测试时,为什么MSTest无法部署一些测试输入文件?,unit-testing,jenkins,mstest,Unit Testing,Jenkins,Mstest,我们在构建服务器上运行自动化测试,该服务器使用Jenkins签出源代码,构建源代码,并通过调用MSTest运行测试。在我们添加第129个单元测试之前,一切正常。然后,其他一些测试神秘地失败了。失败的测试都需要将输入文件部署到TestResults目录。但是,当添加第129个测试时,不会部署这些输入文件!请注意,其他测试也需要输入文件,但这些文件确实需要部署。没有明显的原因说明为什么一些测试输入文件被部署,而另一些则没有 我们尝试过的事情: 无论第129个单元测试添加到哪个测试项目中,或者新测试

我们在构建服务器上运行自动化测试,该服务器使用Jenkins签出源代码,构建源代码,并通过调用MSTest运行测试。在我们添加第129个单元测试之前,一切正常。然后,其他一些测试神秘地失败了。失败的测试都需要将输入文件部署到TestResults目录。但是,当添加第129个测试时,不会部署这些输入文件!请注意,其他测试也需要输入文件,但这些文件确实需要部署。没有明显的原因说明为什么一些测试输入文件被部署,而另一些则没有

我们尝试过的事情:

  • 无论第129个单元测试添加到哪个测试项目中,或者新测试中包含什么(例如:Assert.AreEqual(1,1);)
  • 以我的身份登录时,在生成服务器上的命令行(Visual Studio 2010 x86工具)上手动运行MSTest。当超过128个测试时,相同的测试失败。因此,这不太可能与Jenkins有关,也不可能与自动测试在不同的用户帐户(系统)下运行这一事实有关
  • 将构建代码从构建服务器复制到我的笔记本电脑,并在那里运行相同的MSTest命令。在我的笔记本电脑上,所有129个测试都通过了,尽管构建机器和我的笔记本电脑使用的是相同版本的MSTest(10.0.30319.1)

还有人见过这样的东西吗?它必须是只有在添加超过128个测试时才会发生的事情,并且可以在一台机器上发生,但不能在另一台机器上发生!这是巧合吗?我知道这是计算领域的一个重要数字。

经过大量调查,看起来MSTest或它在幕后调用的某个代理出现了一些问题。有关详细信息,请参阅

但是,当我在构建服务器计算机上安装Visual Studio 2013时,除了已经安装的VS2010之外,所有129个测试都将通过,无论是从VS2010命令提示符运行MSTest还是通过Jenkins运行MSTest。请注意,VS2013未用于构建或运行测试;我甚至还没有在构建服务器上打开它;刚刚安装好


因此,安装VS2013会影响MSTest for VS2010的运行方式。也许它修补了MSTest或它使用的某些代理,或者更改了一些环境变量,或者。。。?!因此,可能有一个较短的修复程序,但目前的解决方法是,如果您希望使用MSTest for VS2010执行128个以上的测试,那么除了VS2010之外,还要在计算机上安装VS2013。微软肯定知道这个问题

您如何在服务器上运行测试?您使用的是
mstest.exe
还是
vstest.console.exe
?在上交叉发布了此问题。抱歉;刚刚看到你的评论-我正在使用VS2010中的mstest.exe。