Преобразование тестовых параметров UNIX make-файла в msbuild для vs2010, C ++ - PullRequest
0 голосов
/ 27 марта 2011

Полное раскрытие: это для школьного проекта. Проект находится на C ++. Они обычно хотят, чтобы мы использовали их лабораторные компьютеры, которые являются системами UNIX, что означает, что make-файл отлично работает на лабораторных компьютерах. Но, как и большинство лабораторных работ, они просто дерьмо. Я потерял более одного проекта из-за их глупости. Но это ни здесь, ни там.

Как я уже сказал, у меня есть этот make-файл UNIX. Меня не волнуют инструкции по компиляции; Я позволю msbuild справиться с этим. Что меня волнует, так это процедуры тестирования в конце make-файла. Это тесты (с использованием другого файла .cpp), которые мой проект должен пройти, чтобы оценить его. Теперь я хотел бы сделать этот проект в vs, но я не уверен, как преобразовать инструкции из make-файла UNIX в то, что может понять msbuild. Есть ли способ добавить это в файл XML в VS? Должен ли я использовать параметр командной строки после сборки для запуска этих тестов? Какой мой лучший вариант здесь? Я включил соответствующий код из make-файла ниже. Я знаю, что могу просто запустить каждый тест отдельно от командной строки, но это будет мучительно много времени. Любой совет и т. Д., Будет принята с благодарностью. Спасибо!

Обратите внимание, что я удалил инструкции по компиляции для других файлов, так как они (я не думаю) имеют отношение к моему вопросу. КОД:

test:
rm -f test_results
ListTemplateTest && \
    (echo "ListTemplateTest OK" >> test_results) || \
    (echo "ListTemplateTest Failed" >> test_results) && \
HashTableTemplateTest test1 && \
    (echo "HashTableTemplateTest test1  OK" >> test_results) || \
    (echo "HashTableTemplateTest test1  Failed" >> test_results) && \
HashTableTemplateTest test2 && \
    (echo "HashTableTemplateTest test2  OK" >> test_results) || \
    (echo "HashTableTemplateTest test2  Failed" >> test_results) && \
HashTableTemplateTest test3 && \
    (echo "HashTableTemplateTest test3  OK" >> test_results) || \
    (echo "HashTableTemplateTest test3  Failed" >> test_results) && \
HashTableTemplateTest test4 && \
    (echo "HashTableTemplateTest test4  OK" >> test_results) || \
    (echo "HashTableTemplateTest test4  Failed" >> test_results) && \
HashTableTemplateTest test5 && \
    (echo "HashTableTemplateTest test5  OK" >> test_results) || \
    (echo "HashTableTemplateTest test5  Failed" >> test_results) && \
HashTableTemplateTest test6 && \
    (echo "HashTableTemplateTest test6  OK" >> test_results) || \
    (echo "HashTableTemplateTest test6  Failed" >> test_results) && \
HashTableVoidTest test1 && \
    (echo "HashTableVoidTest test1  OK" >> test_results) || \
    (echo "HashTableVoidTest test1  Failed" >> test_results) && \
HashTableVoidTest test2 && \
    (echo "HashTableVoidTest test2  OK" >> test_results) || \
    (echo "HashTableVoidTest test2  Failed" >> test_results) && \
HashTableVoidTest test3 && \
    (echo "HashTableVoidTest test3  OK" >> test_results) || \
    (echo "HashTableVoidTest test3  Failed" >> test_results) && \
HashTableVoidTest test4 && \
    (echo "HashTableVoidTest test4  OK" >> test_results) || \
    (echo "HashTableVoidTest test4  Failed" >> test_results) && \
HashTableVoidTest test5 && \
    (echo "HashTableVoidTest test5  OK" >> test_results) || \
    (echo "HashTableVoidTest test5  Failed" >> test_results) && \
HashTableVoidTest test6 && \
    (echo "HashTableVoidTest test6  OK" >> test_results) || \
    (echo "HashTableVoidTest test6  Failed" >> test_results) && \
(wcVoid greetings.txt | sort > out1) && (wcVoidExample greetings.txt | sort > out2) && \
    diff out1 out2 && \
    (echo "wcVoid greetings.txt OK" >> test_results) || \
    (echo "wcVoid greetings.txt Failed" >> test_results) && \
(wcTemplate greetings.txt | sort > out1) && (wcVoidExample greetings.txt | sort > out2) && \
    diff out1 out2 && \
    (echo "wcTemplate greetings.txt OK" >> test_results) || \
    (echo "wcTemplate greetings.txt Failed" >> test_results) && \
echo && \
echo ------ Test Results ----- && \
cat test_results 

чистый: rm -f core * .o HashTableTemplateTest HashTableVoidTest ListTemplateTest \ wcVoid wcTemplate out1 out2 test_results

1 Ответ

1 голос
/ 27 марта 2011

Прежде всего, измените его на пакетный файл DOS.

test:
del /Q /F test_results

ListTemplateTest 
if NOT ERRORLEVEL 1
    echo "ListTemplateTest OK" >> test_results
if ERRORLEVEL 1
    echo "ListTemplateTest Failed" >> test_results

HashTableTemplateTest test1
if NOT ERRORLEVEL 1
    echo "HashTableTemplateTest test1  OK" >> test_results
if ERRORLEVEL 1
    echo "HashTableTemplateTest test1  Failed" >> test_results

etc ...

Теперь в Visual Studio

  • Щелкните правой кнопкой мыши по названию проекта.
  • Выберите «Свойства» из меню.
  • В дереве свойств выберите
    • Свойства конфигурации
      • События сборки
        • Событие после сборки
  • Поместите ваш командный файл как «Командная строка»

Это должно сделать это.

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