Я унаследовал радость создания сборки для решения, имеющего тестовые файлы в проекте приложения, а не в тестовом проекте.
MySolution
|__MyProject
|__MyClass.cs
|__MyClassTest.cs
Все сборки, которые я создал ранее, имели тестовый проект и отлично работали с тестовой задачей в VSTS. Поскольку нет тестовой сборки, тесты не принимаются и не запускаются.
Я пробовал сборку проекта в качестве «тестовой сборки» на этапе сборки, но это не сработало. Как я могу этого добиться?
Вот логи, указывающие на сборку.
2018-07-31T18:31:25.0890193Z Starting test execution, please wait...
2018-07-31T18:31:25.8549638Z NUnit Adapter 3.10.0.21: Test execution started
2018-07-31T18:31:25.8558752Z Running all tests in C:\agent\_work\14\s\MyProject\bin\MyProject.dll
2018-07-31T18:31:26.8625176Z NUnit couldn't find any tests in C:\agent\_work\14\s\MyProject\bin\MyProject.dll
2018-07-31T18:31:26.9532542Z Running all tests in C:\agent\_work\14\s\MyProject\obj\Release\Before-PostSharp\MyProject.dll
2018-07-31T18:31:26.9539232Z NUnit couldn't find any tests in C:\agent\_work\14\s\MyProject\obj\Release\Before-PostSharp\MyProject.dll
2018-07-31T18:31:26.9691860Z Running all tests in C:\agent\_work\14\s\MyProject\obj\Release\MyProject.dll
2018-07-31T18:31:26.9692255Z NUnit couldn't find any tests in C:\agent\_work\14\s\MyProject\obj\Release\MyProject.dll
2018-07-31T18:31:26.9726008Z NUnit Adapter 3.10.0.21: Test execution complete
@DanielMann появляется. Я добавил NUnit3TestAdapter, который мне понадобился, когда я столкнулся с проблемой nunit в сборке, в которой был тестовый проект.
Это должно сработать, как говорит @DanielMann. Это работает в Visual Studio? Вы действительно уверены, что ваши фильтры не исключают эту сборку?
@ TerjeSandstrøm Думаю, да, но это не так. Добавил логи. Если я не неправильно это читаю, он ищет тесты в моей сборке MyProject и не находит их.
Это работает в Visual Studio?
@ TerjeSandstrøm вообще-то нет.
Хорошо, на самом деле это хорошо, это проще исправить в VS :-) Я просто попытался настроить приложение командной строки в VS, добавил тестовый класс, + nunit и адаптер, и все заработало напрямую. Настраивая сборку VSTS для того же самого сейчас, заметил, что мне пришлось изменить фильтр. Но не имеет значения, если он не работает в VS, значит, это что-то другое.
Я добавил репродукцию в github здесь: github.com/OsirisTerje/ExecutableAsTest Посмотрите, работает ли это на вашем VS. А затем измените его, чтобы он соответствовал тому, что у вас есть в вашем случае, что не работает. И это работает в сборке VSTS :-)
Позвольте нам продолжить обсуждение в чате.





Тестирование работает независимо от того, тестовая ли это сборка или какой-то другой исполняемый файл. Если что-то не работает при тестировании, шаг 1 - проверить, работает ли это в Visual Studio, затем - погрузиться в конфигурацию VSTS. @Yatrix подтвердил, что он не работает и в его Visual Studio, поэтому я поднял репро-проект на https://github.com/OsirisTerje/ExecutableAsTest, и из этого @yatrix заметил, что он использует NUnit 2.6.4 с адаптером NUnit 3.10. Тестовые среды NUnit 2 и NUnit 3 очень разные и используют разные соответствующие адаптеры. @Yatrix сообщает, что он работает с адаптером NUnit 2.
В общем, я тупой. ;) Еще раз спасибо!
Имеются ли в проекте соответствующие адаптеры тестовой среды, указанные как пакеты NuGet? Нет ничего особенного в «тестовом проекте» по сравнению с обычным проектом, который предотвратил бы обнаружение тестов, помимо обычных типов проблем, которые могут возникнуть при обнаружении тестов.