Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在Visual Studio 2017中显示Boost测试用例层次结构;s的测试浏览器?_C++_Visual Studio_Test Suite_Boost Test_Test Explorer - Fatal编程技术网

C++ 如何在Visual Studio 2017中显示Boost测试用例层次结构;s的测试浏览器?

C++ 如何在Visual Studio 2017中显示Boost测试用例层次结构;s的测试浏览器?,c++,visual-studio,test-suite,boost-test,test-explorer,C++,Visual Studio,Test Suite,Boost Test,Test Explorer,我有一个使用Boost测试的单元测试文件,如下所示: #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(){

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

#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测试模块名称
cppx_tests
(在单独的文件中定义)作为根:

(Visual Studio的测试资源管理器对测试用例的演示在上面的屏幕截图的右侧。)

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

那么,如何让VS Test Explorer使用Boost Test显示测试的测试用例层次结构,以便我能够容易地识别X类与Y类或Z类的测试,或者这是不可能的?

我发现“按特征分组”将每个测试套件的路径显示为套件中测试用例的根目录。但它不显示层次结构,它添加了一个无关的(对我来说)分组“Status[Enabled]”。我想,如果没有层次显示,这将不得不这样做,但它吸。 [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) ==========