【问题标题】:Conan, CMake.test() generate XML reportConan, CMake.test() 生成 XML 报告
【发布时间】:2020-01-09 08:49:21
【问题描述】:

我目前正在将 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() 

评论:

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

问候,克里斯蒂安

【问题讨论】:

    标签: c++ conan


    【解决方案1】:

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

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

    这将导致以下命令:

    > cmake --build '/tmp/foo/test_package/build/878b1b6e2d4cbc82452d014e37c38868584457e8' '--target' 'test' 'ARGS=-T Test' '--' '-j4'
    

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

    问候!

    【讨论】:

    • 嗯。我收到ConanExeption: Error 1 while executing... 生成的 cmake 调用看起来像你的例子。
    • 能否请您添加有关您的错误的详细信息?柯南版本、命令行、配方、日志……我的示例非常适合常规配方
    • 建议的解决方案仅适用于 linux,但在 Windows MSBUILD : error MSB1008: Only one project can be specified. Switch: ARGS=-T Test 上会出错。是否有 Windows 替代方案?
    • 你试过用引号传递吗? ARGS="-T Test"
    猜你喜欢
    • 1970-01-01
    • 2017-06-11
    • 2011-01-28
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多