[英]Running a pytest test from a python file and NOT from a command line
我在一个目录 (c:\\Tests) 中有三个 python 文件,我试图使用文件 TestCases1.py 中的 pytest 运行测试,但我没有成功。 我是 python 新手,我不知道我问的问题是否正确。 我看过几个例子,但几乎都使用命令行来运行测试,我想从 python 文件中运行它们。 由于我是测试新手,我希望得到一个非常简单的答案(我看过一些类似的问题,但我没有得到答案)。 我正在使用 Python 36-32 和 Eclipse Oxygen 3a。
min_max.py => 一些需要测试的基本功能
def min(values):
_min = values[0]
for val in values:
if val < _min:
_min = val
return _min
def max(values):
_max = values[0]
for val in values:
if val > _max:
_max = valal
return _max
min_max_test.py => 函数的一些测试
import min_max
def test_min():
print("starting")
values = (2, 3, 1, 4, 6)
val = min(values)
assert val == 1
print("done test_min")
def test_max():
print("starting")
values = (2, 3, 1, 4, 6)
val = max(values)
assert val == 6
print("done test_max")
TestCases1.py => 我想运行测试的文件
import pytest
pytest_args = [
'c:\Tests\min_max_test.py'
]
pytest.main(pytest_args)
在min_max_test.py
,测试函数中的min
和max
变量名称将取自内置函数,而不是取自 min_max.py 文件。
您要么需要使用min_max.min
东西,要么使用from
import 而不是完整模块导入来导入这些函数。
PS 请包括错误消息和问题,并具体说明您遇到的问题。 让它变得更容易:)
或者,你可以使用subprocess
在您的Python脚本运行pytest命令。 例如,
# ~/tests
import subprocess
subprocess.run(["pytest . -q"], shell=True)
>>>
. [100%]
1 passed in 0.00s
CompletedProcess(args=['pytest . -q'], returncode=0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.