0

我在运行单元测试时遇到问题。我有一个这样的项目结构:

鉴于此目录

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到父目录,它确实有效(还有其他错误,但这是一个不同的问题)。

我真的不想要父目录中的一堆测试文件。我该如何解决这个问题?

4

1 回答 1

0

conftest.py第 1 步:在您的根目录中放置一个空文件。第 2 步:从根文件夹运行测试python -m pytest

那应该行得通。

于 2020-08-05T21:35:40.570 回答