Запуск нескольких тестовых файлов из одного файла test.py через Python Pytest - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть несколько тестовых файлов в тестовой папке.Структура выглядит примерно так:

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

conftest.py содержит всю инициализацию контекста искры, необходимую для запуска модульного теста.Моя проблема в том, что я хотел бы иметь файл test.py, который внутренне запускает все test_abc.py, test_bcd.py и test_cde.py.Это становится очень легко, когда мы имеем дело с utit_test модулем python, но я не уверен, как получить это через 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 голосов
/ 10 декабря 2018

Я бы рекомендовал использовать скрипт bash и использовать его для вызова вызовов Python из командной строки.Например, в вашем bash-скрипте вы можете просто написать:

pytest test/

, чтобы запустить все тесты в каталоге test.Вы также можете добавить все команды аргументов и любые команды, которые используются в командной строке.Затем просто запустите скрипт bash для определенного набора файлов или каталогов для тестирования.Обратитесь к документации pytest для справки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...