调用executor'executor:// xunit/VsTestRunner2/uap'时发生异常:无法加载文件或程序集'System.IO.FileSystem

Rég*_*IOX 11 tfs build xunit xunit.net azure-devops

当我在VSTS构建上运行单元测试时,我遇到了一个问题.当我在本地启动Visual Studio上的所有测试时,一切正常.完全没有错误.完善.但是当我通过VSTS构建的测试任务启动我的测试时,我有这个错误:

调用执行程序' executor:// xunit/VsTestRunner2/uap '时发生异常:无法加载文件或程序集'System.IO.FileSystem,Version = 4.0.1.0,Culture = neutral,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:

  • 所有测试都在VSTS构建上正确传递
  • 在我的构建任务的设置上,当我将"测试平台版本"设置为"Visual Studio 2015"时,它可以工作.但是,当我选择"Visual Studio 2017"或"最新"时,我有同样的错误......

编辑

我有Nuget包"FluentAssertions" v5.4.1和"System.ValueTuple" v4.5.0.我已经尝试降级其中一个和两个.它失败了.但我看到"FluentAssertions"依赖于"System.ValueTuple"

编辑2

正如@ PatrickLu-MSFT所说,将vs测试任务版本传递给1解决了这个问题.但是,当我仔细观察时,可用的测试平台版本是2015年和2013年:

VS测试任务版本1的测试平台版本

当我选择VS测试任务版本2时,我有这些选择:

VS测试任务版本2的测试平台版本

我想留下vs测试任务版本2(如果将来更新,我不想被卡住......).我看到的是当我将测试平台版本设置为" 最新 "或" Visual Studio 2017 "时,它不起作用.当我选择" Visual Studio 2015 "时,它正在工作......所以我指出的是:

  • 将vs测试任务版本设置为版本1使其工作(可能是因为最新的测试平台版本是" Visual Studio 2015 "......?)
  • 将测试任务版本设置为版本2 测试平台版本设置为"Visual Studio 2015"使其可用

所以:

  • 设置为版本1的 VS测试任务版本似乎与设置为版本2的VS测试任务版本的工作方式相同,其中"测试平台版本"设置为" Visual Studio 2015 ".
  • 如何将VS测试任务版本设置为版本2并将"测试平台版本"设置为" 最新 "?

编辑3

在远程连接到构建代理的服务器并从VS2017运行测试后,我将主机服务器的Visual Studio 2017的输出与本地Visual Studio 2017的输出进行比较:

  • 本地Visual Studio 2017:

我的本地Visual Studio 2017输出

  • 远程Visual Studio 2017:

远程Visual Studio 2017输出

主机上是否存在"xUnit.net VSTest Adapter v2.4.0(32位通用Windows)"的问题?

Eri*_*Lee 14

我遇到了同样的问题并通过更改"自定义测试适配器的路径"来解决它,通过将其设置为"Source\packages\xunit.runner.visualstudio.2.4.0\build_common"来专门指向正确的测试适配器.(您应该修改存储库中文件夹文件夹所在位置的帐户路径.)

这显然是因为默认情况下VSTS尝试有用并扫描整个工作目录结构以获取测试适配器并加载所有这些,但xUnit Visual Studio测试适配器Nuget包也为.Net Core和UWP安装测试适配器,因此VSTS愉快地加载他们,他们炸毁了.

  • 对我来说,它使用路径"$(System.DefaultWorkingDirectory)\ packages\xunit.runner.visualstudio.2.4.0\build \\ _ common" (4认同)
  • 也为我工作过。缺点是,当测试适配器有 NuGet 更新时,我必须在此时更改我的构建定义......:-( (2认同)