如何在Visual Studio 2017的测试资源管理器中显示Boost测试测试用例层次结构?

时间:2018-09-22 04:26:24

标签: c++ visual-studio test-suite boost-test test-explorer

我有一个使用Boost Test的单元测试文件,如下所示:

function Animal(){
//Some codes
}
Var obj = new Animal();`

使用测试套件名称#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() 的目的是在Boost测试案例层次结构中的一个节点下收集Cloner_类的所有测试案例。

当我选择在Visual Studio中运行所有测试时,它将检测到此层次结构:

[22.09.2018 06:18:37 Informational] ------ Run test started ------
[22.09.2018 06:18:39 Informational] Found test: Cloner_/auto_cleanup
[22.09.2018 06:18:39 Informational] Found test: Cloner_/default_construction
[22.09.2018 06:18:39 Informational] Executing:   -> [Cloner_/auto_cleanup]
[22.09.2018 06:18:40 Informational] Executing:   -> [Cloner_/default_construction]
[22.09.2018 06:18:40 Informational] ========== Run test finished: 2 run (0:00:03,1048741) ==========

但是,它不会显示层次结构,只是它将主Boost测试模块名称Cloner_(在单独的文件中定义)用作根:

enter image description here

(在上面的屏幕快照中,Visual Studio的Test Explorer演示了测试用例。)

我想避免使用老式的C样式名称前缀,因为Boost Test确实提供了一种定义层次结构的方法,并且由于Test Explorer在搜索要执行的测试时会报告该层次结构中的路径,因此它显然知道关于它。

因此,如何使VS Test Explorer显示使用Boost Test进行测试的测试用例层次结构,以便我可以轻松识别例如cppx_tests测试X类与Y类或Z类,还是不可能吗?

0 个答案:

没有答案