2016-09-19 200 views
4

目前,我们已通过使用CMakes设置我们的测试了上特拉维斯词集成CTEST,刚刚检查,如果int main()回报别的东西比0运行测试,而测试框架

我们现在想将测试功能添加到我们在Appveyor中的自动化Windows构建中,同时仍保持这种简单的返回值检查。

迄今为止我们发现的Appveyors测试的每一个资源都假设我们正在使用某种类似MSTest的测试框架,我们不打算这么做。

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

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

回答

0

我们建立.appveyor.yml这样的:

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

其中XORSolver.exeEvenNumbers.exe是我们已经习惯了在CMake的运行我们的集成测试。

1

您可以使用cmake并制作的Windows了。 Cmake默认安装在build worker VM上,make应该在build之前添加。

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似乎工作,而化妆失败:这里时,试图使其工作时appveyor.yml我创建。我对这些工具不是很熟悉,但我相信你可以从这里开始调整它。我还添加了声明来创建RDP会话,以便您能够从构建工作人员进行连接和调试。

谢谢,

伊利亚。