Автоматизированное тестирование консольного приложения C ++ в Visual Studio путем отправки текстовых файлов на стандартный ввод? - PullRequest
2 голосов
/ 26 июня 2010

Я собираюсь принять участие в конкурсе по программированию, который мой университет организует на следующей неделе. Мне разрешено использовать только C или C ++, и я предпочел бы использовать последний с использованием Visual Studio 2010. Для каждой задачи есть ввод текста в виде открытого текста в stdin, например:

200 100 10
2 11

Мне нужен инструмент, который помог бы мне запустить мой код с каким-то заранее заданным текстовым файлом в качестве ввода stdin.

В системах на основе Unix я бы просто использовал что-то вроде:

gcc mycode.cpp
./mycode.o <test1.in >result1.out
diff result1.out test1.out

Есть ли способ достичь этого в Visual Studio 2010.

Или, может быть, можно порекомендовать хорошую C ++ IDE с богатыми функциями отладки, которая будет иметь что-то вроде этого "из коробки"?

С наилучшими пожеланиями, Александр.

1 Ответ

1 голос
/ 26 июня 2010

Вы можете сделать то же самое с компилятором Visual Studio и командной строкой Windows:

cl /EHsc mycode.cpp
mycode.exe <test1.in >result1.out
fc result1.out test1.out

Хотя вам может потребоваться лучший инструмент сравнения, чем fc.

.также может закодировать ваш код, чтобы подпрограмма, выполняющая реальную работу, вызывалась с помощью ручек потока (или какого-либо другого механизма получения и размещения данных) и имела тестовую сборку, которая передавала данные через открываемые файлы вместо stdin иstdout.Когда ваше тестирование завершено, настоящая программа просто вызывает эту подпрограмму с помощью дескрипторов stdin и stdout.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...