py.testで親スクリプトを実行しないでテストを実行するにはどうすればよいですか?現在、ディレクトリProject_dirからコマンドpytest -v
を実行していますが、script.pyが実行され、最終的にテストが終了します。理想的には、テストのみを実行する必要があります。ここに私の現在のディレクトリのセットアップです:親スクリプトを実行しないでpytestを使用してテストを実行
Project_dir
script.py
test
test_script.py
script.py
def add(a,b):
added = a + b
return added
x = add(1,3)
print x, 'yup'
test_script.py
import script
def test_add():
assert script.add(3,4) == 7
作業ディレクトリ: Project_dir
コマンド:
========================================== test session starts ==========================================
platform darwin -- Python 2.7.10, pytest-3.0.7, py-1.4.33, pluggy-0.4.0 -- /usr/bin/python
cachedir: .cache
rootdir: **, inifile:
plugins: cov-2.4.0
collecting 0 items
Sum is 4
collected 1 items
test/test_script.py::test_add PASSED
======================================= 1 passed in 0.00 seconds ========================================
Sum is 4
-vs pytestではなく、単にテストを完全に実行script.pyを示しています。これは、script.pyがモジュールとしてインポートされるために発生します。しかし、私はこれを避け、テストを直接実行する方法がなければならないと考え続けています。
動作しませんでした。それでも同じように動作します。ありがとう! – JeeYem
ディレクトリでpytestを実行できます –
メインスクリプトを実行します。 'pytest -v'が' pytest -v test/'と違うのかどうかはわかりません。ちょうど明らかになるように、メインスクリプトは、テストスクリプトのモジュールとしてインポートされたときに実行されます。 – JeeYem