在没有测试框架的情况下使用C在Appveyor中运行测试

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

我们现在想要在Appveyor中为我们的自动Windows构建添加测试功能,同时仍然保持这个简单的返回值检查.

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

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

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

最佳答案 您也可以使用Cmake和Make for Windows.默认情况下,Cmake安装在构建工作者VM上,make应该在构建之前添加.这是我在尝试使其工作时创建的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会话,以便能够从构建工作者进行连接和调试.

谢谢,

伊利亚.

点赞