python -m unittest discover
を実行する方法を探しています。ディレクトリA、B、Cのテストが見つかります。ただし、ディレクトリA、B、Cにはそれぞれdependencies
という名前のディレクトリがあります。しかし、いくつかのテストがありますが、私は走りたくありません。unittestを実行すると、特定のディレクトリが無視されます。
このためのスクリプトを作成しなくても、これらの制約を満たすテストを実行する方法はありますか?
python -m unittest discover
を実行する方法を探しています。ディレクトリA、B、Cのテストが見つかります。ただし、ディレクトリA、B、Cにはそれぞれdependencies
という名前のディレクトリがあります。しかし、いくつかのテストがありますが、私は走りたくありません。unittestを実行すると、特定のディレクトリが無視されます。
このためのスクリプトを作成しなくても、これらの制約を満たすテストを実行する方法はありますか?
python -m unittest
は、モジュールディレクトリに下りますが、他のディレクトリにはありません。
それはすぐにディレクトリが(ファイル__init__.py
を含む)モジュールディレクトリである場合は、状況が異なっている結果
>python -m unittest discover -s temp\a
test_1
.
----------------------------------------------------------------------
Ran 1 test in 0.002s
OK
では、以下の構造
temp
+ a
- test_1.py
+ dependencies
- test_a.py
を試してみました。ここで
temp
+ a
- __init__.py
- test_1.py
+ dependencies
- __init__.py
- test_a.py
結果は
>python -m unittest discover -s temp\a
test_a
.test_1
.
----------------------------------------------------------------------
Ran 2 tests in 0.009s
OK
あなたが今、あなたのフォルダdependencies
はモジュールディレクトリではないため、それが受け入れられるかどうかに依存するために、この答えの有用でした。
EDIT:pytest
を使用してあなたのコメント
うを見た後のオプションで?このテストランナーには、テストを除外するためのコマンド引数が多数あります。
は、あなたが簡単にCLIで--ignore=path
オプションを渡すことで、コレクション中に特定のテストのディレクトリおよびモジュールを無視することができます
がテストコレクション
の間にパスを無視し自分のサイトから
Changing standard (Python) test discoveryを参照してください。 pytestは私の問題を解決することを発見unittestのために渡すために、複数に
--ignore
オプション
私は同じ問題に遭遇し、最終的にこれらの便利な引数を見つけることができたことができます。
ここに文書化されていますhttps://docs.python.org/2/library/unittest.html#test-discovery
-s, --start-directory directory
Directory to start discovery (. default)
-p, --pattern pattern
Pattern to match test files (test*.py default)
だから私はあることを私のコマンドを修正:私は実際に実行するテストの全てが一つのモジュール、テストしているので、
python -m unittest discover -s test
。また、あなたが見つけるかもしれない残りの部分をすべて無視して、あなたのテストにヒットするだけの理論一致正規表現で-pを使うこともできます。
悲しいことに、それは '__init __。py'ファイルを持っていて、それは違うことはできません:( – lucasnadalutti