我有一个包含三个解决方案的回购。每个解决方案都有多个项目,其中许多是共享的(包括测试项目)。
我有一个沿着以下几行的构建管道
- 检索 NuGet 包
- 构建解决方案 1
- 构建解决方案 2
- 构建解决方案 3
- 执行所有测试
执行所有测试的步骤如下:
- task: VSTest@2
displayName: 'Test'
inputs:
testSelector: 'testAssemblies'
testAssemblyVer2: |
**\*test*.dll
!**\*TestAdapter.dll
!**\obj\**
searchFolder: '$(System.DefaultWorkingDirectory)'
绝大多数测试运行完美。但是,对于某些测试,我收到了奇怪且相当混乱的错误消息:
[错误] 测试夹具 TestProjectOne.ABGetSomethingTests 的设置失败
[错误]SetUp:System.IO.DirectoryNotFoundException:找不到路径“d:\a\1\s\Projects\TestProjectTwo\A\B\TestData\SomeFile.txt”的一部分。
因此,它目前正在处理TestProjectOne但随后说它在TestProjectTwo的路径下找不到文件。
测试中的代码如下:
private const string RelativePath = @"..\..\A\B\TestData\";
...
var x = File.ReadAllText(RelativePath + "SomeFile.txt")
不用说,这在 Visual Studio 2019 中使用 Visual Studio 和 ReSharper 测试运行程序完美运行。
为什么 Azure DevOps 管道会遇到此问题?