Conan, CMake.test() 生成 XML 报告

chr*_*zer 4 c++ conan

我目前正在将 Conan.io(版本 1.20.5)引入我的项目。

使用 Cmake.test(),我缺少以前通过ctest -T test直接调用生成的 XML 测试报告。

这是 conanfile.py build() 摘录:

def build(self):
  cmake = CMake(self)
  cmake.configure()
  cmake.build()
  cmake.test() 
Run Code Online (Sandbox Code Playgroud)

注释:

1.) 为 build() 定义 args 正在破坏构建,因为这些 args 似乎被转发到 _build():https : //github.com/conan-io/conan/blob/812c8ec8185e24b2bc41fb6e855d35c925526670/conans/client/build/client cmake.py#L276

问候, 基督徒

uil*_*ies 7

您想将参数传递给ctest,但柯南调用cmake --build . --target test而不是ctest直接调用,因此您需要作为额外参数传递:

def build(self):
    cmake = CMake(self)
    cmake.configure()
    cmake.build()
    cmake.test(args=['--', 'ARGS=-T Test'])
Run Code Online (Sandbox Code Playgroud)

这将导致以下命令:

> cmake --build '/tmp/foo/test_package/build/878b1b6e2d4cbc82452d014e37c38868584457e8' '--target' 'test' 'ARGS=-T Test' '--' '-j4'
Run Code Online (Sandbox Code Playgroud)

现在您将获得 XML 文件结果。

问候!