Pytest: передать один прибор другому - PullRequest
0 голосов
/ 29 сентября 2018

Можно ли передать один объект прибора другому в Pytest ?Например, предположим, что я хочу иметь два объекта фикстуры: один - это пустой массив, а другой - некоторую модель этого массива:

import pytest
import numpy as np

@pytest.fixture()
def arr():
  np.random.seed(141)
  return np.random.seed(141)

@pytest.fixture()
def model(arr):
  return arr * 2

def test_multiplication(arr, model):
  assert model == arr * 2

Здесь arr - это тип function, но arr() - этоNoneType внутри модели, что меня смущает.

Вариант использования для этого случая, когда некоторым тестам нужен доступ к самому необработанному arr, в то время как другим нужен доступ к моделям.

Однако, чтобы это работало, нужно передать один прибор другому (чтобы мы могли построить модель, используя массив).Это возможно?Будем весьма благодарны за любую помощь, которую могут предложить другие!

1 Ответ

0 голосов
/ 29 сентября 2018

Ой, моя примерная функция arr () не определяла массив!Вы можете поделиться приборами, как описано выше:

import pytest
import numpy as np

@pytest.fixture()
def arr():
  np.random.seed(141)
  return np.random.rand(100,2)

@pytest.fixture()
def model(arr):
  return arr * 2

def test_multiplication(arr, model):
  assert np.all(model == arr * 2)

Можно также создать класс с различными методами класса, а затем вернуть его из прибора.Затем тесты могут вызывать отдельные методы класса или обращаться к атрибутам класса, чтобы получить доступ к большему фрагменту общего состояния.Очень мило.

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