Ich versuche, Google-Test in einem Batch-Skript ausführen, um die Tests in Jenkins und während die Tests alle bestanden, Jenkins Job-Status ist FAILURE.Jenkins Job Fehler mit Google-Test PASSIERT
hier ist der Ansatz Ich verwende:
@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!
Und hier ist der AllTest.cpp wo der main() residiert:
#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;
}
Ich habe "r" in einigen gedruckt Testen und es ist korrekt (0 oder 1, wenn ein Test fehlschlägt) Auch wenn ich einen "42" -Wert im Gegenzug hartcodierte, funktioniert es nicht. Ich bekomme diesen hartcodierten Wert nur, wenn ich RUN_ALL_TESTS() entferne.
Und Veranstaltung wie dieser Betrug:
set ERRORLEVEL= 0
Jenkins noch AUSFALL Job spucken: -/
Was bin ich?
'Set ERRORLEVEL = 0' wird nicht funktionieren. Dies wird nur Umgebungsvariable errorlevel erstellen, die sich von dem Exit-Code unterscheidet. Versuchen Sie es mit 'exit/b 0' – npocmaka