繁体   English   中英

从 python 文件而不是从命令行运行 pytest 测试

[英]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 ,测试函数中的minmax变量名称将取自内置函数,而不是取自 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM