Я тестирую функцию загрузки файлов .txt и .txt.gz.Поэтому я сохраняю имена файлов в списке и использую этот код:
import pytest
# usually my files looked like this: 'path/to/my/file/file.txt'
filenames = ['file.txt','file.txt.gz']
filenames.append(pytest.param('file.txt.gz', marks=pytest.mark.slow))
@pytest.fixture(params=filenames)
def filename(request):
return request.param
def test_loading_etc(filename):
# My code:
# customloadfunction(filename)
# assert boolean_whatever
# doing anything: (just for some runtime tests)
x = 0
runtime = 10000000 # adding some runtime
for i in range(runtime):
x += 1
assert x == runtime
Итак, дело в том, что загрузка файлов .txt.gz занимает больше времени, и я хочу исключить их в некоторых тестах.Таким образом, они помечены как медленные и могут использоваться с командой командной строки pytest --runslow
.
Моя проблема: команда pytest
не запускает медленные тесты, занимает то же время, что и когда я выполняю медленныетесты с pytest --runslow
.Когда я объявляю 2 функции для тестирования файлов .txt.gz отдельно и использую маркер @pytest.mark.slow
, это займет гораздо меньше времени.
Есть ли способ получить его в одной функции, все еще получая лучше время?
решено : после того, как я попробовал свой данный тест, который работал нормально, даже моя собственная программа работала нормально - так что проблема решилась сама как-то.Спасибо за помощь!