Boost testrunner в Eclipse не может сгенерировать действительный XML

Я пытаюсь запустить модульные тесты из Eclipse в коде C++. Мое затмение — выпуск Mars.2 (4.5.2). Первоначально я загрузил версию Java Developer, но я установил плагины C/C++. Я написал простой класс, а затем модульный тест для этого класса. Я могу скомпилировать код как в Eclipse, так и в командной строке, чтобы получить исполняемый файл. Если я запускаю исполняемый файл в командной строке, я получаю этот вывод

Выполняется 1 тестовый случай...

*** Ошибок не обнаружено

Все идет нормально.

Теперь, если я попытаюсь запустить внутри Eclipse, я получаю сообщение об ошибке. Сначала оказалось, что мой тест вообще не работает. На вкладке «Модуль C/C++» я получил красную полосу в правой части экрана, нет информации, где я должен видеть результаты отдельных тестов, и сообщение «Ошибка синтаксического анализа XML: преждевременный конец файла» в мелком тексте. прямо под рядом вкладок. Остановившись в отладчике, я увидел, что стал жертвой известная ошибка. В основном существует некоторая несовместимость между Eclipse и boost testrunner, где один указывает XML, а другой xml (другой случай) для формата. Я попробовал этот обходной путь, упомянутый в обсуждении ошибки по этой ссылке:

В качестве обходного пути вы можете добавить следующие аргументы в конфигурацию запуска юнит-тестов:

--output_format=XML --log_level=все --report_level=нет --

Средство запуска тестов Eclipse добавляет к ним свои аргументы. Аргументы после -- передаются вашему тестовому сценарию и игнорируются Boost.Test.

С этим у меня все еще есть проблемы, но проблема различается в зависимости от того, работаю ли я с отладкой или нет. Без отладки результат такой же, как указано выше. При отладке я получаю информацию о своем тесте — отмечая, что он был выполнен и пройден — в левой части вкладки «Модуль C/C++», но по-прежнему вижу красную полосу, указывающую на сбой. Небольшой текст в этом случае говорит: «Ошибка синтаксического анализа XML: содержимое не разрешено в хвостовой части».

Ошибке, отмеченной выше, по-видимому, около 2 лет, хотя обсуждение было активным совсем недавно, в прошлом месяце. Я думаю, есть какая-то другая работа вокруг? Кажется вероятным, что за прошедшие два года сообщество проводило тесты!

Я попытался обновить Eclipse через Help -> Check for Updates. Мое положение это не улучшило. Я подозреваю, что другая информация может быть полезной, чтобы помочь, но я не уверен, что предоставить. Я буду смотреть комментарии и обновлять, если / где я могу.


person Brick    schedule 14.03.2017    source источник


Ответы (1)


С неохотой я обновился до версии Eclipse Neon.2. Основная ошибка все еще присутствует, как описано в моем вопросе, но указанный обходной путь работает в этом выпуске. Скопировав это из вопроса для полноты:

В качестве обходного пути вы можете добавить следующие аргументы в конфигурацию запуска юнит-тестов:

--output_format=XML --log_level=все --report_level=нет --

Средство запуска тестов Eclipse добавляет к ним свои аргументы. Аргументы после -- передаются вашему тестовому сценарию и игнорируются Boost.Test.

Было бы неплохо, если бы это работало и на Марсе, поскольку обновление доставляет некоторые хлопоты, особенно с поддержкой нескольких языков разработки, но, по крайней мере, я могу двигаться дальше. Наверное, в любом случае пришлось бы обновить в какой-то момент.

person Brick    schedule 14.03.2017