我有一个python文件,其中包含一些代码和对该代码的简单测试。
我想从该python文件中调用pytest,让它只收集该文件中的测试,并运行它们。
例如:foo.py
:
# ... various code above...
def test_foo():
foo = Foo()
assert foo()
def test_bar():
bar = Bar()
assert bar.baz
if __name__ == '__main__':
import pytest
pytest.main()
我现在想运行python foo.py
并让pytest运行该文件中的两个测试,并且只运行这些测试。
但是,当我运行python foo.py
时,pytest从我运行命令的路径中根的所有模块收集所有测试。
我如何运行python foo.py
并在foo.py
中调用pytest.main()
,仅调用foo.py
中的测试而不调用其他测试?
根据pytest文档,选项和参数可以传递给pytest.main
。要在foo.py
中运行测试,可以这样做:
# ... various code above...
def test_foo():
foo = Foo()
assert foo()
def test_bar():
bar = Bar()
assert bar.baz
if __name__ == '__main__':
import pytest
pytest.main(["foo.py"])
# consider using below
# pytest.main([__file__])