Как запустить тест BOOST с помощью vstest.console.exe?

Я использую тест BOOST для тестирования своего кода на C++. Обычно тесты выглядят так, как показано ниже, а тестовый проект построен как exe. Чтобы собрать информацию о покрытии кода, я надеюсь, что смогу запустить свои тесты с помощью vstest.console.exe, чтобы я мог попробовать использовать его параметр /Enablecodecoverage.

#include <boost/test/unit_test.hpp>
... other includes ...

class TestContext {...}

BOOST_AUTO_TEST_SUITE(MyTests);

    BOOST_FIXTURE_TEST_CASE(SomeTest, TestContext)
    {
        // test code 
    }

BOOST_AUTO_TEST_SUITE_END()

Я продолжаю работать с сообщением "В.exe нет доступных тестов. Убедитесь, что средство обнаружения и исполнители тестов зарегистрированы, а настройки версии платформы и фреймворка подходят, и повторите попытку". Я не понимаю на данный момент.

При запуске с параметром --diagnostic я вижу это в сгенерированном файле:

"C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Enterprise \ Common7 \ IDE \ Extensions \ TestPlatform TpTrace Предупреждение: 0: 13924, 3, 2020/10/15, 14:33:27.926, 1817417335033, testhost.exe, TestPluginDiscoverer: не удалось загрузить расширения из файла "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Extensions\TestPlatform\Extensions\Microsoft.VisualStudio.Coverage.Interop.dll". Пропуск тестовое сканирование расширения для этого файла. Ошибка: System.BadImageFormatException: не удалось загрузить файл или сборку Microsoft.VisualStudio.Coverage.Interop или одну из его зависимостей. Была предпринята попытка загрузить программу с неправильным форматом. Имя файла: 'Microsoft.VisualStudio.Coverage.Interop'"

Установщик Visual Studio на моем компьютере подтверждает, что тестовый адаптер Boost.Test уже установлен.

1 ответ

Догадаться. Проблема заключалась в правильном пути TestAdapter. У меня уже установлен адаптер Boost.Test (если нет, вы можете сделать это из VS Installer). Адаптеры находятся на моем компьютере в папках в C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Extensions, а vstest.console.exe может обнаруживать и выполнять тесты, даже если я указал путь к корневой каталог, например /TestAdapterPath:"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise".

Другие вопросы по тегам