我在运行单元测试时遇到问题。我有一个这样的项目结构:
鉴于此目录
who-said-what/
|
|_ wave_encoder.py
|
|_ tests/
|_ test_wave_encoder.py
test_wave_encoder.py
看起来像这样:
from wave_encoder import *
class TestEncoder():
def test_plot_no_fit1(self):
encoder = WaveEncoder()
self.assertRaises(ValueError, encoder.plot_signal)
def test_plot_no_fit2(self):
encoder = WaveEncoder()
self.assertRaises(ValueError, encoder.plot_transform)
def test_plot_no_fit3(self):
encoder = WaveEncoder()
self.assertRaises(ValueError, encoder.plot_components)
如果我单独运行这个测试文件,没有问题。但是,如果我尝试从项目中的任何目录运行 pytest:
pytest -v --cov ./tests
# or
pytest -v --cov .
我得到一个ModuleNotFoundError: No module named 'wave_encoder'
.
但是,如果我移动test_wave_encoder.py
到父目录,它确实有效(还有其他错误,但这是一个不同的问题)。
我真的不想要父目录中的一堆测试文件。我该如何解决这个问题?