У меня есть РЕПО, содержащее три решения. Каждое решение имеет несколько проектов, многие из которых являются общими (включая тестовые проекты).
У меня есть конвейер сборки по следующим линиям
- Извлечение пакетов NuGet
- Build Solution 1
- Build Solution 2
- Build Solution 3
- Выполнить все тесты
Выполнить все тесты следующим образом:
- task: VSTest@2
displayName: 'Test'
inputs:
testSelector: 'testAssemblies'
testAssemblyVer2: |
**\*test*.dll
!**\*TestAdapter.dll
!**\obj\**
searchFolder: '$(System.DefaultWorkingDirectory)'
Подавляющее большинство тестов работают отлично. Тем не менее, я получаю странное и довольно запутанное сообщение об ошибке для некоторых тестов:
[ошибка] Ошибка SetUp для тестового устройства 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 страдает от этой проблемы?