通过 PyCharm 开始测试时在 pytest 中使用辅助方法时断言的问题

问题描述 投票:0回答:0

如果正常使用assert的第二个参数,它会打印出调试信息。 例如。使用以下代码:

class TestTest:
    def test_test(self):
        assert 1 == 2, "TEST"

打印如下调试信息:

tests\test_test.py:1 (TestTest.test_test)
1 != 2

Expected :2
Actual   :1
<Click to see difference>

self = <tests.test_test.TestTest object at 0x000002147E5B1B08>

    def test_test(self):
>       assert 1 == 2, "TEST"
E       AssertionError: TEST
E       assert 1 == 2
E         +1
E         -2

test_test.py:3: AssertionError

但是,如果断言发生在辅助函数中,则不会打印:

class TestTest:
    def test_test(self):
        self.verify(1)

    def verify(self, parameter):
        assert 1 == 2, "TEST"

结果:

tests\test_test.py:1 (TestTest.test_test)
1 != 2

Expected :2
Actual   :1
<Click to see difference>

self = <tests.test_test.TestTest object at 0x000002AFDF1D5AC8>

    def test_test(self):
>       self.verify(1)

test_test.py:3:

所以堆栈跟踪不完整,调试信息没有显示。

更新: 只有在通过 PyCharm (2021.3) 开始测试时才会发生这种情况。

有什么办法可以解决这个问题吗?

python pycharm pytest
© www.soinside.com 2019 - 2024. All rights reserved.