Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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++ 如何设置C++;VS代码中的Testmate_C++_Visual Studio Code_Googletest - Fatal编程技术网

C++ 如何设置C++;VS代码中的Testmate

C++ 如何设置C++;VS代码中的Testmate,c++,visual-studio-code,googletest,C++,Visual Studio Code,Googletest,好的,n00b问题。我有一个cpp文件。我可以在终端上构建和运行它。我可以在VSCode中使用clang++构建和运行它 然后我将gtest添加到它中。我可以在终端中使用g++-std=c++0x$FILENAME-lgtest-lgtest\u main-pthread进行编译,然后运行测试 我在VSCode安装C++ TestMax扩展。我在互联网上看到的一切都意味着它应该可以正常工作。但是我的测试资源管理器是空的,我在代码窗口中看不到任何测试指示器 我显然错过了一些非常基本的东西。请帮忙

好的,n00b问题。我有一个cpp文件。我可以在终端上构建和运行它。我可以在VSCode中使用clang++构建和运行它

然后我将gtest添加到它中。我可以在终端中使用
g++-std=c++0x$FILENAME-lgtest-lgtest\u main-pthread
进行编译,然后运行测试

我在VSCode安装C++ TestMax扩展。我在互联网上看到的一切都意味着它应该可以正常工作。但是我的测试资源管理器是空的,我在代码窗口中看不到任何测试指示器


我显然错过了一些非常基本的东西。请帮忙

可执行文件应放在工作区的
out
build
文件夹中。或者可以修改
testMate.cpp.test.executables
config.

我想说的是,永远不要假设某个东西会“正常工作”

您仍然需要阅读手册并找出配置属性的名称。我不会提供确切的例子,因为即使我只使用了这个扩展很短的时间,它的名称,因此完整的属性路径,已经改变了,所以任何例子都可能很快被淘汰

一般的想法是:此扩展监视一些文件/文件夹,当它们更改时,它假定这些文件/文件夹是使用
gtest
catch2
创建的可执行文件。扩展尝试使用标准(对于那些框架)标志运行它们,以获得测试套件和测试用例的列表。如果成功,它将解析输出并在侧面板中创建一个漂亮的列表。代码中的标记也依赖于完全相同的解析输出,因此如果您有一个,那么您也有另一个

综上所述,你需要三件事来完成这项工作:

  • 为在扩展配置中查找所有测试可执行文件(同时忽略所有非测试可执行文件)提供正确的路径(或全局模式)。有不同的方法可以做到这一点,这取决于您的设置的复杂性,但它们都在文档中
  • 不要修改测试可执行文件的输出。例如,如果在
    gtest
    实现解析和处理其标准标志之前,您碰巧将某些内容打印到stdout/stderr,则扩展将无法解析
    /your_test_binary--gtest-list_tests
    的输出
  • 如果您的测试可执行文件需要额外的设置才能正确运行(env vars,cwd),请确保对扩展使用“高级”配置,并相应地配置这些属性
  • 要对#2和#3进行故障排除,您可以打开扩展的调试日志记录(同样,在VSCode的config json中),这将导致创建一个额外的“Output”选项卡/类别,您可以在其中查看考虑了哪些文件、运行了哪些文件、输出是什么,以及是什么导致忽略了这个确切的文件