运行 在没有测试框架的情况下使用 C++ 在 Appveyor 中进行测试
Running tests in Appveyor with C++ without a testing framework
我们目前已经使用 CMakes 集成 CTest 在 Travis Ci 上设置了我们的测试,它只检查 int main()
return 是否为 0 之外的其他值。
我们现在想在 Appveyor 中为我们的自动化 windows 构建添加测试功能,同时仍然保持这种简单的 return 值检查。
到目前为止,我们发现的用于 Appveyors 测试的每个资源都假定我们正在使用某种测试框架,例如 MSTest,而我们并不打算这样做。
我发现您可以在 Appveyor 上 运行 自定义 CMD 和 Powershell 测试脚本,这听起来是检查我们测试的 return 值的理想方式。
不幸的是,我们都没有使用 CMD 和 Powershell 的经验,不知道如何实现这一点。
供参考,这是有问题的项目:JNF_NEAT
您也可以为 Windows 使用 Cmake 和 Make。 cmake 默认安装在 build worker 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 会话的语句,以便您能够从构建工作程序进行连接和调试。
谢谢,
伊利亚。
我们这样设置 .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 上 运行 使用的集成测试。
我们目前已经使用 CMakes 集成 CTest 在 Travis Ci 上设置了我们的测试,它只检查 int main()
return 是否为 0 之外的其他值。
我们现在想在 Appveyor 中为我们的自动化 windows 构建添加测试功能,同时仍然保持这种简单的 return 值检查。
到目前为止,我们发现的用于 Appveyors 测试的每个资源都假定我们正在使用某种测试框架,例如 MSTest,而我们并不打算这样做。
我发现您可以在 Appveyor 上 运行 自定义 CMD 和 Powershell 测试脚本,这听起来是检查我们测试的 return 值的理想方式。
不幸的是,我们都没有使用 CMD 和 Powershell 的经验,不知道如何实现这一点。
供参考,这是有问题的项目:JNF_NEAT
您也可以为 Windows 使用 Cmake 和 Make。 cmake 默认安装在 build worker 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 会话的语句,以便您能够从构建工作程序进行连接和调试。
谢谢,
伊利亚。
我们这样设置 .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 上 运行 使用的集成测试。