我有一個項目的結構是這樣的:蟒蛇單元測試導入類子目錄
|tools/
|-- test/
| |-- __init__.py
| |-- test_class1.py
| |-- test_class2.py
|
|-- tools/
|-- __init__.py
| |-- class1.py
| |-- class2.py
|
|-- test_runner (Python script that calls unittest.TestLoader().discover('test'))
|-- README.md
我想運行test_runner
並讓它運行在test
文件夾中的所有測試。我個人的測試將會有這樣一行:from test_class import TestClass
來測試適當的類。
test_runner
看起來是這樣的:
#!/usr/bin/env python
import unittest
import sys
import os
sys.path.append(os.path.realpath(__file__) + '/tools')
suite = unittest.TestLoader().discover('test')
results = unittest.TextTestRunner(verbosity=2).run(suite)
if len(results.errors) > 0 or len(results.failures) > 0:
sys.exit(1)
sys.exit()
現在這是行不通的,我的測試文件無法導入其相應的課程。我可以讓它工作,如果我export PYTHONPATH=/path/to/file
但我想通過腳本得到這個工作。
我也試過sys.path.insert(0, os.path.dirname(__file__) + '/tools')
但是,這並不工作,因爲文件,當我使用sys.path.insert
沒有返回。
任何不使用「nosetests」的理由? –
這不是太大的項目,所以我不想添加太多的依賴關係。我認爲會有一個更簡單的方法來做到這一點,我錯過了。它看起來像「nosetests」是唯一的選擇嗎? –
這不是唯一的選擇,但我不會考慮測試運行者的依賴。 –