Как отобразить иерархию тестовых примеров Boost Test в Visual Studio 2017 Test Explorer?

У меня есть файл модульного теста, использующий Boost Test, например:

#include <boost/test/unit_test.hpp>
#include <cppx/auto/Cloner_.hpp>
#include <utility>

namespace {
struct S
{
static auto count() -> int& { static int c; return c; }

S(){ ++count(); }
S( const S& ) { ++count(); }
S( S&& ) { ++count(); }
~S() { --count(); }
};
}

BOOST_AUTO_TEST_SUITE( Cloner_ )

BOOST_AUTO_TEST_CASE( default_construction )
{
cppx::Cloner_<int> cloner1;
BOOST_TEST( cloner1.p() == nullptr );
}

BOOST_AUTO_TEST_CASE( auto_cleanup )
{
BOOST_REQUIRE( S::count() == 0 );

{
cppx::Cloner_<S> cloner1( new S );
BOOST_TEST( S::count() == 1 );
cppx::Cloner_<S> cloner2 = cloner1.clone();
BOOST_TEST( S::count() == 2 );
}
BOOST_TEST( S::count() == 0 );
}

BOOST_AUTO_TEST_SUITE_END()

Моя цель с названием набора тестов Cloner_ это собрать все контрольные примеры для Cloner_ класс, под узлом в иерархии тестовых случаев Boost.

Когда я выбираю запускать все тесты в Visual Studio, он обнаруживает эту иерархию:

[22.09.2018 06:18:37 Информационный] ------ Запуск теста начался ------
[22.09.2018 06:18:39 Информационный] Найден тест: Cloner_ / auto_cleanup
[22.09.2018 06:18:39 Информационный] Найден тест: Cloner_ / default_construction
[22.09.2018 06:18:39 Информационный] Выполнение: -> [Cloner_ / auto_cleanup]
[22.09.2018 06:18:40 Информационный] Выполнение: -> [Cloner_ / default_construction]
[22.09.2018 06:18:40 Информационный] ========== Запуск теста завершен: 2 запуска (0: 00: 03,1048741) ==========

Тем не менее, это не дисплей иерархия, за исключением того, что он использует имя основного тестового модуля Boost cppx_tests (определяется в отдельном файле) как root:

введите описание изображения здесь

(Представление тестовых сценариев в Visual Studio в тестовом окне справа на приведенном выше снимке экрана.)

Я бы хотел избежать старомодных префиксов имен в стиле C, поскольку Boost Test действительно предоставляет средства для определения иерархии, и поскольку Test Explorer сообщает пути в этой иерархии при поиске тестов для выполнения, так что он, очевидно, знает об этом.

Итак, как я могу заставить VS Test Explorer отображать иерархию тестовых случаев для тестов, использующих Boost Test, чтобы я мог легко идентифицировать, например, default_construction тестирование класса X против класса Y или класса Z, или это невозможно?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]