在VSTS构建上运行单元测试时,我面临一个问题。 当我在Visual Studio本地启动所有测试时,一切正常。完全没有错误。完善。 但是,当我通过VSTS构建上的测试任务启动测试时,出现此错误:
调用执行程序时发生异常 ' executor:// xunit / VsTestRunner2 / uap ':无法加载文件或程序集 'System.IO.FileSystem,版本= 4.0.1.0 ,文化=中性, PublicKeyToken = ***********'或其依赖项之一。的 系统找不到指定的文件。
我的测试项目设置如下:
版本2.4.0上的“ xunit.runner.visualstudio”,其“ targetFramework”设置为“ net462”(在packages.config中设置)
.NET Framework 4.6.2
在构建服务器上,我有:
Visual Studio 2017, v15.7.5
Visual Studio 2015, v14.0
我的线索不多了...我肯定错过了一些东西... 谢谢您的帮助
PS:
编辑
我有Nuget软件包“ FluentAssertions” v5.4.1 和“ System.ValueTuple” v4.5.0 。我已经尝试降级其中之一和两者。失败了但是我看到“ FluentAssertions”对“ System.ValueTuple”有依赖性
编辑2
正如@ PatrickLu-MSFT所说,将vs测试任务版本传递给1解决了该问题。 但是当我仔细观察时,可用的测试平台版本是2015和2013:
当我选择VS测试任务版本2 时,我有以下选择:
我想继续使用第2版测试任务(如果将来有更新,我不想被困住...)。我看到的是,当我在Test Platform版本上设置为“ 最新”或“ Visual Studio 2017 ”时,它不起作用。当我选择“ Visual Studio 2015 ”时,它可以工作... 所以我的意思是:
所以:
编辑3
远程连接到我的构建代理的服务器并从VS2017运行测试后,我将主机服务器的Visual Studio 2017的输出与本地Visual Studio 2017的输出进行比较:
主机上的“ xUnit.net VSTest适配器v2.4.0(32位通用Windows)”是否存在一些问题?
答案 0 :(得分:10)
我遇到了同样的问题,并通过将“自定义测试适配器的路径”更改为“ Source \ packages \ xunit.runner.visualstudio.2.4.0 \ build_common”,将其专门指向正确的测试适配器,从而解决了该问题。 (您应修改路径以说明packages文件夹在存储库中的位置。)
这显然是因为默认情况下,VSTS会尝试提供帮助并扫描整个工作目录结构中的测试适配器,并全部加载它们,但是xUnit Visual Studio测试适配器Nuget软件包会为以下内容安装测试适配器: .Net Core和UWP也是如此,因此VSTS会很高兴地加载它们并炸毁。