我们目前已经使用CMakes集成CTest在Travis Ci上设置了测试,它只检查int main()
是否返回0以外的其他内容。
我们现在想要在Appveyor中为我们的自动Windows构建添加测试功能,同时仍然保持这个简单的返回值检查。
到目前为止我们发现的每个Appveyors测试资源都假设我们正在使用某种类似MSTest的测试框架,我们不打算这样做。
我发现您可以在Appveyor上运行自定义CMD和Powershell测试脚本,这听起来像是检查测试返回值的理想方式。
不幸的是,我们都缺乏使用CMD和Powershell的经验,并且不知道如何实现这一目标。
作为参考,这是有问题的项目:JNF_NEAT
答案 0 :(得分:1)
您也可以使用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会话,以便能够从构建工作器进行连接和调试。
谢谢,
伊利亚安德。
答案 1 :(得分:0)
我们设置.appveyor.yml就像这样:
test_script:
- C:\projects\jnf-neat\x64\Release\XORSolver.exe
- C:\projects\jnf-neat\x64\Release\EvenNumbers.exe
其中XORSolver.exe
和EvenNumbers.exe
是我们用于在CMake上运行的集成测试。