我们在构建服务器上运行自动化测试,该服务器使用Jenkins检查源代码,构建它并通过调用MSTest来运行测试。在我们添加第129单元测试之前,一切正常。然后其他一些测试神秘地失败了。失败的测试都需要输入文件,这些文件应该部署到TestResults目录。但是,添加第129个测试时,不会部署这些输入文件!请注意,其他测试也需要输入文件,但这些文件会被部署。没有明显的理由说明为什么某些测试输入文件已部署但其他测试输入文件没有部署。
我们尝试过的事情:
还有其他人见过这样的事吗?它必须是仅在添加超过128个测试时才会发生的事情,这可能发生在一台机器而不是另一台机器上! 128是巧合吗?我知道这在计算方面是一个重要的数字。
答案 0 :(得分:0)
经过大量调查后,看起来MSTest或它所调用的某个代理商存在一些问题。有关详细信息,请参阅MSDN post。
但是当我在构建服务器机器上安装Visual Studio 2013时,除了已经安装的VS2010之外,所有129个测试都会通过,无论是从VS2010命令提示符运行MSTest还是通过Jenkins运行。请注意,VS2013 不用于构建或运行测试;我甚至没有在构建服务器上打开它;刚安装好了!
因此安装VS2013会影响VS2010的MSTest运行方式。也许它修补MSTest或它使用的某个代理,或者更改一些环境变量,或者......?!所以可能有一个较短的修复,但现在的解决方法是在VS2010上安装VS2013,如果你想使用MSTest for VS2010执行超过128次测试。当然微软知道这个问题吗?!