特定のディレクトリをスキップするようにpy.testに指示する方法は?


91

norecursedirssetup.cfg内のオプションを使用して、特定のディレクトリからテストを収集しないようにpy.testに指示しようとしましたが、無視されているようです。

[tool:pytest]
norecursedirs=lib/third

実行するpy.testと、内部からテストがどのように取得されるかがわかりますlib/third


私が持っているようだpy.testし、pytestそれらの両方をテストしている別の獣をランニング。奇妙ですpytestが、からの除外をロードしないために失敗するもの[pytest]です。
sorin 2012年

1
pytestlogilabからです。あなたが欲しいpy.test
ecatmur 2012年

3
またやってみてくださいnosecuredirs=lib/third/*
intelis 2016年

スクリプト自体の一部のフォルダーをコードで無視する方法はありますか?
bicepjai 2017年

2
ローカル開発でのWebアプリの私のpytestが非常に遅い理由に興味があったので、ここに行き着きました...理由は、ネストされたyy / dd / mm構造を持つアップロードされたリソースディレクトリでした....それは本当にひどいです!ありがたいこと[pytest] norecursedirs = resourcespytest.iniトリックを行います💪!
andilabs

回答:


86

py.test --ignore=somedir 私のために働いた


5
また、--ignore複数のディレクトリを無視するように複数回指定できます
フェニックス

ディレクトリの代わりに特定のテストをスキップする方法
Rajatjain19年

-k以下の別の回答が示すように、このオプションを使用できます。docs.pytest.org/en/latest/…の「キーワード式によるテストの実行」を参照してください。ここでもマークが役立つ場合があります。など、「遅い」としてテストをマークし、その後、使用-k "not slow"
shadfc

3
Unixシェルスタイルのワイルドカードに基づくテストファイルパスを無視するために使用--ignore-globすることもできます。たとえば--ignore-glob=**/sandbox/*sandboxフォルダ内のすべてのファイルを無視します。
ヤンM.

28

親が異なる複数のディレクトリがある場合は、異なる--ignoreパラメータを指定できます。

py.test --ignore=somedir --ignore=otherdir --ignore=etcdir

  • 新しいオプション:-ignoreは、指定されたパスが収集されないようにします。
    複数回指定できます。

24

pytestセクションは、可能な設定ファイルのいずれかで発見された場合(:私は謎を解決しpytest.initox.iniかつsetup.cfg)、pytestは、他のもののためので、必ず1つのファイルにpy.testオプションを定義することになりません。

を使用することをお勧めしsetup.cfgます。


9
なぜsetup.cfgですか?現在のドキュメントでは、他の2つ
jebob 2020

.iniファイルを使用する場合は、で指定する必要があることに言及することが重要だと思いますpytest -c pytest.ini。なんらかの理由でsetup.cfgコンテンツが自動的に取得されました。
therightstuff


11

norecursedirs動作するはずです。pytest.iniまたはその他のsetup.cfgファイルがあるかどうかを確認します。どのように呼び出していpy.testますか?


1
私はsetup.cfg適切な[pytest]norecorsedirsを内部に持っていますが、無視されているようで、代わりにすべてのファイルを検索します。
sorin 2013

10

私の場合、問題はワイルドカードの欠落でした。以下は私のために働きます:

[tool:pytest]
norecursedirs = subpath/*

一方、そうでnorecursedirs = subpathはありませんでした。


こっちも一緒。しかし、非常に奇妙な振る舞い。
azmeuk

3

setup.cfgを使用[tool:pytest]している場合は、http: //doc.pytest.org/en/latest/example/pythoncollection.htmlに従って使用する必要があります。

#pytest.iniのコンテンツ
#tox.iniまたはsetup.cfgファイルでも定義できますが、setup.cfgファイルのセクション
名は#「tool:pytest」である必要があります。


0

使用するためにはpytest.ini(あなたが使用している場合を除き、推奨されtoxた場合にはtox.ini理にかなって)、コールpytestpytest -c pytest.ini

私のサンプルを防止するために、not_me_1.pyおよびnot_me_2.pyテストまたはLINTEDされているから、私はpytest.ini次のとおりです。

[pytest]
addopts = --ignore-glob=not_me_*

[pycodestyle]
ignore = not_me_* ALL

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.