Как я могу запустить тесты в моей сборке, которые находятся в проекте приложения, а не в тестовом проекте?

Я унаследовал радость создания сборки для решения, имеющего тестовые файлы в проекте приложения, а не в тестовом проекте.

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

Имеются ли в проекте соответствующие адаптеры тестовой среды, указанные как пакеты NuGet? Нет ничего особенного в «тестовом проекте» по сравнению с обычным проектом, который предотвратил бы обнаружение тестов, помимо обычных типов проблем, которые могут возникнуть при обнаружении тестов.

Daniel Mann 31.07.2018 20:40

@DanielMann появляется. Я добавил NUnit3TestAdapter, который мне понадобился, когда я столкнулся с проблемой nunit в сборке, в которой был тестовый проект.

Yatrix 31.07.2018 20:40

Это должно сработать, как говорит @DanielMann. Это работает в Visual Studio? Вы действительно уверены, что ваши фильтры не исключают эту сборку?

Terje Sandstrøm 31.07.2018 20:52

@ TerjeSandstrøm Думаю, да, но это не так. Добавил логи. Если я не неправильно это читаю, он ищет тесты в моей сборке MyProject и не находит их.

Yatrix 31.07.2018 20:58

Это работает в Visual Studio?

Terje Sandstrøm 31.07.2018 21:04

@ TerjeSandstrøm вообще-то нет.

Yatrix 31.07.2018 21:05

Хорошо, на самом деле это хорошо, это проще исправить в VS :-) Я просто попытался настроить приложение командной строки в VS, добавил тестовый класс, + nunit и адаптер, и все заработало напрямую. Настраивая сборку VSTS для того же самого сейчас, заметил, что мне пришлось изменить фильтр. Но не имеет значения, если он не работает в VS, значит, это что-то другое.

Terje Sandstrøm 31.07.2018 21:13

Я добавил репродукцию в github здесь: github.com/OsirisTerje/ExecutableAsTest Посмотрите, работает ли это на вашем VS. А затем измените его, чтобы он соответствовал тому, что у вас есть в вашем случае, что не работает. И это работает в сборке VSTS :-)

Terje Sandstrøm 31.07.2018 21:18

Позвольте нам продолжить обсуждение в чате.

Yatrix 31.07.2018 21:27
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
9
144
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Тестирование работает независимо от того, тестовая ли это сборка или какой-то другой исполняемый файл. Если что-то не работает при тестировании, шаг 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.

В общем, я тупой. ;) Еще раз спасибо!

Yatrix 31.07.2018 21:39

Другие вопросы по теме