В моем файле tests/conftest.py
есть следующее, используемое для загрузки массива в виде объекта фикстуры для тестов, запускаемых pytest:
@pytest.fixture(scope="module")
def my_fixture():
return np.load(os.path.join(os.getcwd(), "fixture", "example.npy")
Файл projectname/tests/fixture/example.npy
присутствует.
Это работает нормально, когда я запускаю свои тесты из PyCharm, но когда тесты запускаются на TravisCI, я получаю ошибку файла не найден, с указанием пути к файлу как отсутствующего каталога tests
, то есть его нужно искатьфайл как /home/travis/build/username/projectname/tests/fixture/example.npy
, но вместо этого он ищет файл как /home/travis/build/username/projectname/fixture/example.npy
, как будто он начинается с главного каталога проекта, а не с подкаталога tests, который является предполагаемым относительным местоположением.
Каталог projectname/tests
содержит все тестовые файлы, а файлы фиксации * .npy находятся в projectname/tests/fixture
.
Можно ли выполнить настройку в файле .travis.yml для настройки pytest, чтобы он знал, как найти * .npyфайлы, как я ожидаю при звонке на numpy.load
?Или это как-то связано с настройкой pytest rootdir
, которая в TravisCI ведет себя иначе, чем когда я запускаю тесты из PyCharm?