0

このファイル構造に従うと、私のプロジェクトは次のようになります(簡略化)。

Project/
|-- project/
    |-- test/
        |-- test_foo.py
    |-- foo.py

fooベストプラクティスを使用して、内部からどのようにインポートする必要がありますtest_foo.pyか?私は相対的な輸入を知っていますが、PEP8はそれらを思いとどまらせます

4

2 に答える 2

2

単体テストでは、少なくとも外部インターフェイスのテストでは、絶対インポートを優先します。テストは可能な限りクライアントコードに似ている必要があり、物事が移動したり、__init__.pyモジュールから適切に再エクスポートされなかったりすると、テストが中断する必要があります。

于 2012-10-03T15:31:15.323 に答える
0

From tests, I always use from .. import foo, because it's the simplest, makes the package easiest to refactor, and isn't going to break, because I always keep my tests in a tests/ sub-package.

The relative imports the first half of PEP8 discusses are implicit relative imports: for example, from foo.py: import test.test_foo. These are bad, and there's never a reason to use them.

Otherwise, the only option is from project import foo.

于 2012-10-03T15:18:52.437 に答える