我正在尝试在批处理脚本中运行Google测试以在Jenkins中运行测试,而测试全部通过,Jenkins的作业状态为FAILURE。
这是我正在使用的批次:
@echo off
setlocal ENABLEDELAYEDEXPANSION
call "C:\Program Files (x86)\Maxim Integrated\eclipse\eclipsec.exe" --launcher.suppressErrors -nosplash -application org.eclipse.cdt.managedbuilder.core.headlessbuild -import ".\Loader" -data ./ -cleanBuild "Loader/UnitTest" && (
call .\Loader\UnitTest\Loader.exe
echo Loader status = !ERRORLEVEL!
)
echo !ERRORLEVEL!
这是main()所在的AllTest.cpp:
#include "gtest/gtest.h"
extern "C" void __gcov_flush();
int main(int argc, char** argv)
{
::testing::InitGoogleTest(&argc, argv);
int r = RUN_ALL_TESTS();
__gcov_flush();
return r;
}
我在某些测试中打印过“r”并且它是正确的(如果测试失败则为0或1) 即使我硬编码“42”值作为回报,它也不起作用。只有当我删除RUN_ALL_TESTS()时才会得到这个硬编码值。
通过像这样作弊的事件:
set ERRORLEVEL= 0
詹金斯还在吐痰失败: - /
我错过了什么?
答案 0 :(得分:0)
我使用此方法解决了这个问题: Using gtest in jenkins
所以我在GTest运行后调用gawk,让Jenkins满意,并根据链接帖子使用Jenkins的JUnit测试插件。