В Visual Studio собственный модульный тест, возможно ли связать модульный тест с проектом? - PullRequest
0 голосов
/ 23 июня 2018

У меня есть решение с тремя проектами

Solution
-Project 1
-Project 2
-Project 3

Недавно хотел реализовать модульный тест (или интеграционный тест), чтобы убедиться, что все по-прежнему работает, и у меня есть опыт работы с CppUTest, но я хотел увидетьесли что-то, что VS может предложить, может быть «лучше» интегрировано для этой цели.

Поэтому я последовал руководству, и оно привело меня к другому проекту.

- Тестовый проект Unit (он же проект 4)Это только класс, судя по всему.

Solution
-Project 1
-Project 2
-Project 3
-Project 4 (Unit test, testing Project 1)

Так что мне интересно, что является хорошей практикой для поддержки среды модульного / интеграционного тестирования?

Это может быть ...

Один проект модульного тестирования, несколько классов модульных тестов, по одному для каждого проекта

Solution
-Project 1
-Project 2
-Project 3
-Project 4 (Unit test, testing Project 1, 2 and 3)

Проект модульного тестирования для рабочего проекта Один проект модульного тестирования, несколько классов модульных тестов, по одному для каждого проекта

Solution
-Project 1
-Project 2
-Project 3
-Project 4 (Unit test, testing Project 1)
-Project 5 (Unit test, testing Project 2)
-Project 6 (Unit test, testing Project 3)

Просто примените класс модульного теста к существующим проектам (не уверен, если это возможно)

Solution
-Project 1
 -Code
 -Unit Test
-Project 2
 -Code
 -Unit Test
-Project 3
 -Code
 -Unit Test

Возможен ли третий вариант?

1 Ответ

0 голосов
/ 23 июня 2018

Вопреки принятому ответу, я бы сказал, что определенно поместите ваш тестовый код в отдельный проект.Независимо от того, создаете ли вы один или несколько тестовых проектов, это вопрос мнения, но есть веские причины не включать ваш тестовый код в код выпуска.

Основная причина в том, что вы не хотите связать тестовые библиотеки в код выпуска Это просто неприемлемо в моей книге, и, насколько я знаю, в Visual Studio есть четкий подход «1 проект = 1 библиотека», поэтому я не понимаю, как этого избежать.

Использование одной библиотеки модульных тестов для каждогоПроект означает, что вы можете разрабатывать проекты независимо от других, и вы можете легко определить, какие тесты вы хотите запустить, вместо того, чтобы запускать тесты для всего решения.Вы могли бы даже настроить непрерывное тестирование, чтобы намного быстрее получать обратную связь о коде во время написания (на самом деле, не уверены, что кто-то работает с C ++, по крайней мере, это довольно распространено для управляемых языков).

Также, если вы используете инфраструктуру модульных тестов Microsoft, вы можете просто использовать шаблон , который предоставляет , что также вынуждает вас создавать отдельный проект для ваших тестов.

...