Почему мой отчет о тестировании Bazel не проходит, когда все отдельные тесты проходят? - PullRequest
0 голосов
/ 25 июня 2019

При выполнении моего юнит-теста (gtest) через Базель я вижу сообщение об ошибке. Тем не менее, журналы показывают, что мой тест успешно выполняется и проходит успешно.

Другие тесты в моем проекте проходят успешно, и единственное различие между девиантным тестом и остальными состоит в том, что девиантный тест является многопоточным.

Я сам запустил тестовый двоичный файл, найденный в bazel-bin, и он успешно проходит и возвращает.

Базельская версия:

Build label: 0.26.0
Build target: bazel-out/k8-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Tue May 28 08:35:14 2019 (1559032514)
Build timestamp: 1559032514
Build timestamp as int: 1559032514

Соответствующий блок в моем BUILD файле:

cc_test(
  name = "DBControllerIntegration",
  srcs = ["dbcontroller_integration_test.cc"],
  deps = [
    "//src:db_ctl_lib",
    "//test/mocks:sstable_mock_lib",
    "@boost//:filesystem",
    "@com_google_protobuf//:protobuf",
    "@glog//:glog",
    "@googletest//:gtest_main",
  ],
  copts = ["-std=c++17"],
)

Вывод теста Базеля:

>> bazel test //test:DBControllerIntegration --test_output=errors
INFO: Invocation ID: ccca8fa7-27a5-4c8c-badf-3f342934e4e5
INFO: Analysed target //test:DBControllerIntegration (0 packages loaded, 0 targets configured).
INFO: Found 1 test target...
FAIL: //test:DBControllerIntegration (see /home/tallen/.cache/bazel/_bazel_tallen/f087948e065d612174d90a43a5740198/execroot/diodb/bazel-out/k8-dbg/testlogs/test/DBControllerIntegration/test.log)
INFO: From Testing //test:DBControllerIntegration:
==================== Test output for //test:DBControllerIntegration:
Running main() from gmock_main.cc
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from DBControllerIntegrationTest
[ RUN      ] DBControllerIntegrationTest.Basic

... <omitting my application's logs> ...

[       OK ] DBControllerIntegrationTest.Basic (4000 ms)
[----------] 1 test from DBControllerIntegrationTest (4000 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (4001 ms total)
[  PASSED  ] 1 test.
================================================================================
Target //test:DBControllerIntegration up-to-date:
  bazel-bin/test/DBControllerIntegration
INFO: Elapsed time: 4.706s, Critical Path: 4.57s
INFO: 1 process: 1 processwrapper-sandbox.
INFO: Build completed, 1 test FAILED, 2 total actions
//test:DBControllerIntegration                                           FAILED in 4.6s
  /home/tallen/.cache/bazel/_bazel_tallen/f087948e065d612174d90a43a5740198/execroot/diodb/bazel-out/k8-dbg/testlogs/test/DBControllerIntegration/test.log

INFO: Build completed, 1 test FAILED, 2 total actions

Запуск тестового двоичного файла сам по себе:

>> ./bazel-bin/test/DBControllerIntegration
Running main() from gmock_main.cc
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from DBControllerIntegrationTest
[ RUN      ] DBControllerIntegrationTest.Basic

... <omitting my application's logs> ...

[       OK ] DBControllerIntegrationTest.Basic (4001 ms)
[----------] 1 test from DBControllerIntegrationTest (4001 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (4001 ms total)
[  PASSED  ] 1 test.

Я ожидаю, что результаты теста Базеля будут считаться успешными, поскольку фактический тест проходит успешно, но я вижу тест как неудачный.

...