Немного сложно начать.Лучший способ, который я использовал, - это установить связь между двумя проектами, исходным реальным проектом (я назову его RealProject) и тестовым проектом (назову этот TestProject.) Ваш реальный код будет продолжать житьв вашем RealProject.vcproj, но вам нужно добавить второй проект для размещения вашего тестового кода.
Откройте файл решения, содержащий ваш RealProject.Создайте новый проект в своем решении и назовите его TestProject.В тестовом проекте вы добавите свой тестовый код CppUnit и свою основную функцию (как у вас было выше).Если вы построите его сейчас, он должен потерпеть неудачу.Добавьте необходимые свойства, чтобы получить его по ссылке.Откройте свойства TestProject и на экране компоновщика / ввода измените поле «Дополнительные зависимости».Добавьте соответствующий файл .LIB из CppUnit (например, TestRunner.lib). Прежде чем продолжить, получите приведенный выше пример кода для сборки и компоновки.Подумайте небольшими шагами.
Теперь снова откройте свойства TestProject и на экране компоновщика / ввода измените значение «Дополнительные зависимости».В этот список добавьте объектные файлы реального проекта, которые содержат код, который вы хотите протестировать.Например, если RealProject имеет Foo.cpp, содержащий некоторые методы, которые вы хотите протестировать, вы бы добавили $ (SolutionDir) RealProject \ Debug \ obj \ Foo.obj. Конечно, при условии, что это правильный относительный путь к вашим объектным файлам.У вас могут быть разные пути для разных сборок, например, выпуск, x64 или что-то еще.Сначала работайте с одной версией, затем примените свои новые знания, чтобы правильно построить другие версии.
Теперь добавьте класс тестового набора в TestProject (назовите его FooTest.cpp), чтобы протестировать методы в модуле Foo.cpp.,Убедитесь, что он создает, ссылки и работает.Теперь вы проводите модульное тестирование своего первого кода!Поздравляем!
Возможно, вы захотите перестроить тесты при изменении исходного кода.Щелкните правой кнопкой мыши папку проекта TestProject и выберите «Зависимости проекта».Добавьте галочку напротив RealProject.Теперь, если вы выберете TestProject и соберете его, он удостоверится, что RealProject будет построен первым.
Если вы хотите сделать это один раз и забыть об этом, вы можете использовать подстановочный знак для всей папки объектного файла, например так:
$(SolutionDir)RealProject\Debug\obj\*.obj
Таким образом, каждый модуль, добавляемый вами в RealProject, может иметь написанный модульный тест, не вмешиваясь в настройки проекта.
Одним из преимуществ этого является то, что он всегда проверяет ваш фактический, фактический, скомпилированныйкод.Нет «подделки» компилятора, нет второй компиляции вашего исходного кода для тестирования, это действительный тест вашего живого кода.Другое преимущество состоит в том, что, сохраняя тестовый код в отдельном проекте, вы не случайно отправили свои юнит-тесты.Они скомпилированы в совершенно отдельную папку, которую вы не могли бы упаковать и доставить своим клиентам.
Честно говоря, было бы намного проще, чем эта.Я хотел бы, чтобы это было встроено в IDE, и автоматически управляло бы всей бухгалтерией, ссылками и прочим.Все, что упростит тестирование, увеличит шансы того, что разработчики действительно будут его использовать.