为何bazel test需要用sys.exit(pytest.main([__file__, “-s“]))的写法

最近在尝试将bazel应用到python项目中,在将bazel test与python的测试对接的时候,发现了一些有趣的问题:

bazel test可以直接对接unittest框架,但是对接pytest框架时需要做一些改造。这篇文章就是来探究背后可能的原因的

我们来进行如下的实验,同时在main上下去打印一下东西,看看输出结果:

Pytest

代码如下所示:

输出如下所示

=========================================================== test session starts ===========================================================

platform darwin — Python 3.6.8, pytest-6.2.4, py-1.10.0, pluggy-0.13.1

rootdir: /Users/hexu/tsingj/caculator_bazel_python_demo

plugins: remotedata-0.3.2, mock-3.6.1, doctestplus-0.1.3, arraydiff-0.2, openfiles-0.3.0

collected 1 item

test/test_operators.py . [100%]

============================================================ 1 passed in 0.01s ============================================================

Unittest

输出如下所示:

由上可知,

  • Pytest.main()执行后,python进程不会退出,因此可以打印两行日志
  • Unittest.main()执行后,python进程会直接退出,因此只打印一行日志。

大意就是执行完所有case后,会调用sys.exit结束进程。

那sys.exit是怎么退出将程序的呢?

Original: https://blog.csdn.net/yinfang1252/article/details/120850575
Author: yinfang1252
Title: 为何bazel test需要用sys.exit(pytest.main([file, “-s“]))的写法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/774884/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球