aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/testing/unittest/utmain.cpp
diff options
context:
space:
mode:
authoralexv-smirnov <alex@ydb.tech>2023-03-16 13:59:59 +0300
committeralexv-smirnov <alex@ydb.tech>2023-03-16 13:59:59 +0300
commit648fc9d7949c88a6ebaaf110289b8b4536bb9a16 (patch)
treec46c89a2e46516c986af3e4ecb44d927bbdfcbac /library/cpp/testing/unittest/utmain.cpp
parent4568fe3f6ddb72499ef17f5e0a1e7e2475a9570b (diff)
downloadydb-648fc9d7949c88a6ebaaf110289b8b4536bb9a16.tar.gz
JUnitXML output for unittest
Diffstat (limited to 'library/cpp/testing/unittest/utmain.cpp')
-rw-r--r--library/cpp/testing/unittest/utmain.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/library/cpp/testing/unittest/utmain.cpp b/library/cpp/testing/unittest/utmain.cpp
index a55b6f399b..4e10da24e5 100644
--- a/library/cpp/testing/unittest/utmain.cpp
+++ b/library/cpp/testing/unittest/utmain.cpp
@@ -1,3 +1,4 @@
+#include "junit.h"
#include "plugin.h"
#include "registar.h"
#include "utmain.h"
@@ -668,6 +669,16 @@ int NUnitTest::RunMain(int argc, char** argv) {
};
EListType listTests = DONT_LIST;
+ TString oo(getenv("Y_UNITTEST_OUTPUT"));
+ if (oo.StartsWith("xml:")) {
+ TStringBuf fileName = oo;
+ fileName = fileName.SubString(4, TStringBuf::npos);
+ processor.BeQuiet();
+ NUnitTest::ShouldColorizeDiff = false;
+ processor.SetTraceProcessor(new TJUnitProcessor(TString(fileName), argv[0]));
+ }
+
+
for (size_t i = 1; i < (size_t)argc; ++i) {
const char* name = argv[i];
@@ -723,6 +734,17 @@ int NUnitTest::RunMain(int argc, char** argv) {
TString param(argv[i]);
size_t assign = param.find('=');
Singleton<::NPrivate::TTestEnv>()->AddTestParam(param.substr(0, assign), param.substr(assign + 1));
+ } else if (strcmp(name, "--output") == 0) {
+ ++i;
+ Y_ENSURE((int)i < argc);
+ TString param(argv[i]);
+ if (param.StartsWith("xml:")) {
+ TStringBuf fileName = param;
+ fileName = fileName.SubString(4, TStringBuf::npos);
+ processor.BeQuiet();
+ NUnitTest::ShouldColorizeDiff = false;
+ processor.SetTraceProcessor(new TJUnitProcessor(TString(fileName), argv[0]));
+ }
} else if (TString(name).StartsWith("--")) {
return DoUsage(argv[0]), 1;
} else if (*name == '-') {