除了已经提供的资料外,if __name__ == "__main__":
技术也是确保pytest
和unittest
如果您不小心调用脚本, 脚本仍然在运行python
代替pytest
(或)python -m unittest
举例来说:
def test_assert():
assert 1 + 2 == 3
if __name__ == "__main__":
import pytest
pytest.main([__file__])
现在不管怎么称呼你的测试 都会在测试中进行pytest
或python
。在这里,这是unittest
版本 :
import unittest
class Tests(unittest.TestCase):
def test_assert(self):
self.assertTrue(1 + 2 == 3)
if __name__ == "__main__":
unittest.main()
然后您的脚本用python
以一计号,以python -m unittest
拨打。
现在,如果你也想确保 你所有的价码都通过pytest
如果被召唤时python
或者,如果你也想加入额外的参考物呢?
def test_assert():
assert 1 + 2 == 3
if __name__ == "__main__":
from pytest import main
from sys import argv
main([*argv, "-s"])
现在,你的python -v --html=report.html
具有与pytest -v --html=report.html
,等等。这是一个很好的方法,可以确保脚本仍然照原意运行, 即使没有按照预期运行pytest
或python -m unittest
电话