我在测试文件夹中有多个测试文件。结构类似于以下内容:
/test
----test_abc.py
----test_bcd.py
----test_cde.py
----conftest.py
conftest.py包含所有运行单元测试所必需的spark上下文初始化。我的问题是我想拥有一个test.py
文件,该文件在内部触发所有test_abc.py
,test_bcd.py
和test_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"
答案 0 :(得分:0)
我建议仅使用bash脚本,然后使用该脚本来调用命令行python调用。例如,在您的bash脚本中,您可以编写:
pytest test/
运行test
目录中的所有测试。您还可以添加所有自变量命令以及在命令行上使用的所有命令。然后,只需对要测试的特定文件或目录集执行bash脚本。请参阅pytest Documentation供参考。