首页 文章

通过python Pytest从一个test.py文件运行多个测试文件

提问于
浏览
0

我在测试文件夹中有多个测试文件 . 结构类似于这样的结构:

/test
----test_abc.py
----test_bcd.py
----test_cde.py
----conftest.py

conftest.py包含运行单元测试所需的所有spark上下文初始化 . 我的问题是我希望有一个 test.py 文件,它在内部触发所有 test_abc.pytest_bcd.pytest_cde.py . 当我们处理python的 utit_test 模块时变得非常容易,但我不知道如何通过 pytest 模块获得它 . 如果对问题需要进一步澄清,请告诉我 .

conftest.py看起来像这样:

import pytest
from pyspark import SQLContext
from pyspark import SparkConf
from pyspark import SparkContext
from pyspark.streaming import StreamingContext

@pytest.fixture(scope="session")
def spark_context(request):
    conf = (SparkConf().setMaster("local[2]").setAppName("pytest-pyspark-local-testing"))
    request.addfinalizer(lambda: sc.stop())
    sc = SparkContext(conf=conf).getOrCreate()
    return sc

其中一个test_abc.py看起来像这样:

import pytest
import os
from pyspark.sql import SQLContext
pytestmark = pytest.mark.usefixtures("spark_context")
def test_get_pc_browser_sql(spark_context):
    "assert something"

1 回答

  • 0

    我建议只使用一个bash脚本并使用它来调用命令行python调用 . 例如,在你的bash脚本中你可以写:

    pytest test/
    

    test 目录中运行所有测试 . 您还可以添加所有参数命令以及在命令行上使用的所有命令 . 然后,只需执行要测试的特定文件或目录集的bash脚本 . 请查看pytest Documentation以供参考 .

相关问题