Можно ли передать один объект прибора другому в Pytest? Например, предположим, что я хочу иметь два объекта fixture: один из которых имеет массив numpy, а другой - некоторую модель этого массива:
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
модель NoneType
внутри модели, которая меня путает.
Вариант использования для этого случая - это случай, когда некоторые тесты нуждаются в доступе к необработанному arr
, в то время как другим нужен доступ к моделям.
Однако для выполнения этой работы нужно передать один прибор другому (чтобы мы могли построить модель с использованием массива). Это возможно? Любая помощь, которую могут предложить другие, будет очень признательна!
Упс, моя функция sample() не определяла массив! Вы можете делиться светильниками так, как это было описано выше:
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)
Можно также создать класс с различными методами класса, а затем вернуть его из прибора. Затем тесты могут вызывать индивидуальные методы класса или атрибуты класса доступа, чтобы получить доступ к большему фрагменту общего состояния. Очень хорошо.
return arr, arr*2
и затем в тестах передаем только модель крепежа, и делаемarr, model = model