Вы говорите Автотест ала Руби Автотест ? Если так, возможно, Watchr будет работать для вас. Да, вам нужно будет установить среду выполнения Ruby на компьютере разработчика, но похоже, что он может запускать практически все, что можно сделать из командной строки при изменении файловой системы. Например, если вы хотите, чтобы Watchr собирал и запускал ваши тесты C ++ в любое время, когда файл .c / .cpp / .h / .hpp в вашем исходном дереве изменился, вы можете сделать что-то вроде этого:
watch('src/(.*)\.[h|cpp|hpp|c]') {system "build/buildAndRunTests.bat"}
Эта конкретная команда, очевидно, делает некоторые предположения о том, как настроен ваш процесс сборки (и, очевидно, что вы работаете в Windows), но это должно быть суть. Наша команда настраивает наши проекты модульных тестов с событием после сборки, которое автоматически запускает двоичный файл встроенного модульного теста, поэтому мы можем просто запустить эту часть нашего процесса сборки в скрипте buildAndRunTests.bat
и распечатать результаты в командной строке , Это может занять некоторое время, но похоже, что Watchr может быть хорошим выбором. Я обновлю этот ответ, когда попробую (надеюсь, в начале следующей недели).
ОБНОВЛЕНИЕ : Я только что попробовал это с одним из моих проектов C # и заставил это работать там. Поэтому я теоретически должен работать и с проектами на C ++.
autotest.watchr
watch('./.*/.*\.cs$') {system "cd build && buildAndRunTests.bat && cd ..\\"}
Обратите внимание на $ в конце регулярного выражения. Это важно, потому что во время сборки в дереве исходных текстов генерируется много артефактов, и если какой-либо из них соответствует строке .cs , он запускает еще один запуск, фактически вызывая бесконечный цикл. Вероятно, то же самое произойдет, если вы создадите / измените какие-либо исходные файлы во время сборки, поэтому вам, возможно, придется найти способ компенсации.
buildAndRunTests.bat
pushd ..\
rem Build test project
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.com" Tests.Unit\Tests.Unit.csproj /rebuild Release
popd
rem Navigate to the directory containing the built files
pushd ..\Tests.Unit\bin\Release
rem Run the tests through nunit-console
..\..\..\Dependencies\NUnit-2.5.5-bin\net-2.0\nunit-console.exe Tests.Unit.dll /run=Tests.Unit
popd
Затем в отдельном окне консоли просто перейдите в каталог проекта и выполните следующую команду (предполагается, что autotest.watchr находится в верхней части дерева проекта, см. Ниже):
watchr autotest.watchr
Теперь, когда в исходном дереве изменяются любые файлы .cs, он автоматически запускает скрипт buildAndRunTests.bat . Это всего лишь пример с моего локального компьютера, поэтому он, скорее всего, не будет работать на вашем компьютере, но вы сможете настроить его под свои нужды.
Это структура каталогов для справки:
/Project
/build
buildAndRunTests.bat
/Tests.Unit
/Dependencies
/NUnit-2.5.5-bin
/net-2.0
nunit-console.exe
autotest.watchr
Надеюсь, это поможет.