首页 > 解决方案 > 使用“bazel test”时如何使用PDB?

问题描述

我使用 unittest.TestCase 创建了一个 python 单元测试。我一直在项目中使用 bazel。下面是一个简化的例子。

py_library(
    name = "example",
    srcs = [ 
        "example.py"
    ],     
)

py_test(
    name = "example_test",
    srcs = [ 
        "example_test.py",
    ], 
    deps = [
        ":example", 
    ],    
)

以下命令运行良好:

bazel test :example_test

但我想使用“pdb”调试“example.py”。如果我添加'import pdb; pdb.set_trace()' 行在 example.py 中的某处,'bazel test' 崩溃并显示以下错误消息。

 if self.quitting: raise BdbQuit

bdb.BdbQuit

我在stackoveflow中进行了一些搜索,但以下答案也不起作用:

我可以在 Bazel 测试中使用 Python 调试器吗

有人可以就此提供一些建议吗?

标签: pythonunit-testingdebuggingbazel

解决方案


我无法bazel test使用 pdb 运行。但是您可以通过将测试bazel run视为py_binary目标来运行测试,并且 pdb 照常工作。


推荐阅读