Komut satırı bayraklarıyla eklentileri devre dışı bırakmanın daha kolay olduğu için bunu yapmaya hiç gerek duymadım. Bir çözüm olarak -c
seçeneği kullanarak farklı bir ini dosyası belirtebilirsiniz ya ve ya farklı ini dosyası var ya da ben gerçekten ihtiyacınız varsa, böyle bir şey yapabileceğini
$ cat pytest.ini
[pytest]
addopts= -p no:django
$ py.test
================================================= test session starts
platform linux -- Python 3.4.3, pytest-3.0.5, py-1.4.32, pluggy-0.4.0
rootdir: /home/me/python, inifile: pytest.ini
plugins: pep8-1.0.6, cov-2.4.0
collected 0 items
============================================ no tests ran in 0.02 seconds
$ py.test -c /dev/null
================================================= test session starts
platform linux -- Python 3.4.3, pytest-3.0.5, py-1.4.32, pluggy-0.4.0
rootdir: /home/me/python, inifile: /dev/null
plugins: django-3.1.2, pep8-1.0.6, cov-2.4.0
collected 0 items
============================================ no tests ran in 0.02 seconds
aşağıda olduğu gibi hatta /dev/null
kullanın. py.test -c <(grep -v no:django pytest.ini)
, unix adlı bir unix kullanarak ve eklenti satırını kaldırmak için grep
veya sed
'u kullanın. Ancak tüm eklentileri varsayılan olarak kullanmak ve komut satırı üzerinden devre dışı bırakmak daha kolay görünüyor.
py.test -c <(grep -v no:django pytest.ini)
================================================= test session starts
platform linux -- Python 3.4.3, pytest-3.0.5, py-1.4.32, pluggy-0.4.0
rootdir: /home/me/python, inifile: /dev/fd/63
plugins: django-3.1.2, pep8-1.0.6, cov-2.4.0
collected 0 items
============================================ no tests ran in 0.03 seconds
Alternatif ben pytest.ini
içinde addopts= -p no:myplugin
belirtmek olmaz ve onları kapatmak istediğinde yerine PYTEST_ADDOPTS
ortam değişken kullanın. Ancak bu,
teşekkürler, evet bu 'pytest.ini' dosyasından sakınmak için iyidir, ancak bir sorun zaten orada bazı eklentileri devre dışı bırakılmış olabilir ve buradaki fikir yalnızca gerçekten bir tane – eLRuLL
gerçekten etkinleştirmeniz gerekiyorsa, bir şey yapabilirsin. 'py.test -c <(grep -v no: django pytest.ini)' adında bir unix ve 'grep' ya da plugin eklenti satırını kaldırmak için. – dinosaurwaltz
Evet, ama sorun testi yürüten diğer kullanıcılar için bunu kolaylaştırmaktır. Dosyadan kaçabilir ve komut satırında her birini tek tek devre dışı bırakabilirim, ancak bu, bir projedeki testleri çalıştırmanın varsayılan yolu olamaz. – eLRuLL