Тестова розробка передбачає написання тесту перед кодом та наступний певний цикл :
- Тест з написання
- Перевірка тесту (запустіть)
- Напишіть виробничий код
- Перевірка тесту (запустіть)
- Очистити виробничий код
- Перевірка тесту (виконання)
Що стосується мене, це можливо лише в тому випадку, якщо ваше рішення для розробки дозволяє дуже швидко перемикатися між виробничим і тестовим кодом і надзвичайно швидко виконати тест для певної частини виробничого коду.
Тепер, хоча існує багато фреймворків тестування модулів для C ++ (я використовую Bost.Test atm.), Схоже, насправді не існує пристойного (для рідного C ++ ) рішення Visual Studio (Plugin), яке робить TDD цикл можна носити незалежно від використовуваної рамки.
"Bearable" означає, що це дія одним клацанням миші для запуску тесту для певного файлу cpp без необхідності вручну встановлювати окремий проект тестування тощо. "Bearable" також означає, що простий тест починається (пов'язує!) І працює дуже швидко .
Отже, які інструменти (плагіни) та методи існують там, що роблять цикл TDD можливим для власного розвитку C ++ за допомогою Visual Studio?
Примітка: я добре вживаю безкоштовні або "комерційні" інструменти.
Будь ласка : Немає рамкових рекомендацій. (Якщо рамка не має спеціального плагіна Visual Studio і ви хочете порекомендувати плагін.)
Редагування Примітка : На сьогодні відповіді містять посилання про те, як інтегрувати блок тестування модулів у Visual Studio. Ресурси більш-менш описують, як змусити структуру UT складати та запускати свої перші тести. Це НЕ то , що це питання о. Я вважаю, що дійсно продуктивно працювати, маючи Unit Tests в ручному режимі (!), Окремий vcproj від ваших виробничих класів додасть стільки накладних витрат, що TDD "неможливо". Наскільки мені відомо, ви не додаєте зайвих "проектів" до Java або C #, щоб увімкнути Unit Tests і TDD, і це не є вагомою причиною. Це повинно бути можливо, за допомогою потрібних інструментів C ++, але здається, що (це питання про те), що інструментів для TDD / C ++ / VS дуже мало.
Гулячи навколо, я знайшов один інструмент, VisualAssert , який, здається, спрямований у правильному напрямку. Однак, afaiks, схоже, він не знайшов широкого застосування (порівняно з CppUnit, Boost.Test тощо).
Редагувати: Я хотів би додати коментар до контексту цього питання. Я думаю, що це добре підсумовує викладення (частину) проблеми: (коментар Біллі ONeal )
Visual Studio не використовує "сценарії побудови", які можна редагувати користувачем. Один проект виробляє один двійковий. Більше того, у Java є властивість, що Java ніколи не будує повного бінарного файлу - бінарний файл, який ви будуєте, - це лише ZIP-файл файлів класу. Тому можна скласти окремо, тоді JAR разом вручну (використовуючи, наприклад, 7z). C ++ і C # насправді пов'язують свої двійкові файли, тому загалом кажучи, ви не можете написати такий сценарій. Найближче до вас може скласти все окремо, а потім зробити два зв’язування (одне для виробництва, а одне для тестування).
7z
). C ++ і C # насправді пов'язують свої двійкові файли, тому загалом кажучи, ви не можете написати такий сценарій. Найближче до вас може скласти все окремо, а потім зробити два зв’язування (одне для виробництва, а одне для тестування).
As far as I am aware, you do not add extra "projects" to a Java or C# thing to enable Unit Tests and TDD,
<- Я не думаю, що це правильно. У вас також зазвичай є кілька проектів і в C #; ви не хочете відправляти свій тестовий код у виробничий двійковий файл.