【问题标题】:Running tests in Appveyor with C++ without a testing framework在没有测试框架的情况下使用 C++ 在 Appveyor 中运行测试
【发布时间】:2017-01-27 04:58:49
【问题描述】:

我们目前已经使用 CMakes 集成 CTest 在 Travis Ci 上设置了测试,它只检查 int main() 是否返回 0 以外的值。

我们现在想在 Appveyor 中的自动化窗口构建中添加测试功能,同时仍然保留这个简单的返回值检查。

到目前为止,我们发现的每个 Appveyors 测试资源都假定我们正在使用某种测试框架,例如 MSTest,我们不打算这样做。

我发现您可以在 Appveyor 上运行自定义 CMD 和 Powershell 测试脚本,这听起来是检查我们测试返回值的理想方式。
不幸的是,我们对使用 CMD 和 Powershell 的经验都很缺乏经验,也不知道如何实现这一点。

作为参考,这是有问题的项目:JNF_NEAT

【问题讨论】:

    标签: c++ powershell cmd appveyor


    【解决方案1】:

    您也可以使用 Cmake 和 Make for Windows。 Cmake 默认安装在 build worker 虚拟机上,make 应该在 build 之前添加。这是我在尝试使其工作时创建的 appveyor.yml:

    install:
    # Install make for Windows unsing chocolatey
      - ps: choco install make
    
    build_script:
    # Use the same commands which is used in .travis.yml
      - cmake -DCMAKE_CXX_COMPILER=g++-6 CMakeLists.txt
    
    # make fails here now
      - make 
      - make test
    
    # Start RDP access to connect and debug
    on_finish:
      - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
    

    Cmake 似乎工作,而 make 失败。我对那些工具不是很熟悉,但我相信你可以从这里开始调优。我还添加了创建 RDP 会话的语句,以便您能够从 build worker 进行连接和调试。

    谢谢,

    伊利亚。

    【讨论】:

      【解决方案2】:

      我们这样设置.appveyor.yml

      test_script:
        - C:\projects\jnf-neat\x64\Release\XORSolver.exe
        - C:\projects\jnf-neat\x64\Release\EvenNumbers.exe
      

      XORSolver.exeEvenNumbers.exe 是我们已经用于在 CMake 上运行的集成测试。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-01-09
        • 1970-01-01
        • 2022-08-22
        • 1970-01-01
        • 2010-12-06
        • 1970-01-01
        • 1970-01-01
        • 2017-01-10
        相关资源
        最近更新 更多