web-dev-qa-db-ja.com

PyCharmはファイル全体を検査しませんか?

PyCharmでファイル全体の検査を無効にすることは可能ですか?

これが必要な理由は、 py.test を処理するときです。関数パラメーターをシャドウするように見えるフィクスチャを使用し、同時に未解決の参照を引き起こします。例えば。:

_from myfixtures import user  # Unused import statement warning

def test_is_awesome(user):  # Shadows name 'user' from outer scope warning
    assert user.is_awesome()
_

pytest.raises()を使用すると、pytest.pyに「参照 'raises'が見つかりません」という警告が表示されるなど、py.testからの他の警告もあります。

たぶん、これらの問題を解決する別の方法がありますか? py.testを間違って使用しているのでしょうか?

23
gak

PyCharmでファイル全体の検査を無効にすることは可能ですか?

はい。この回答はこの質問のみを対象としています(「これらの問題を修正する別の方法があるのではないでしょうか?py.testを誤って使用しているのでしょうか?」)。

  1. 「設定|スコープ」
  2. そのような「不要な」ファイルを含む新しいスコープを作成します
  3. 「設定|検査」
  4. 「問題のある」検査を見つける
  5. 右クリックして「スコープの追加」を選択します
  6. その特定のスコープの検査を無効にする

あるいは(動作するかどうか:実際の検査に依存します..そしてそれが実際にPyCharmでこのように動作するかどうかはわかりません-ではありません残念ながら、PyCharmユーザー自身)

  1. Alt + Enter キャレットがコード内のエラー/警告の場所に立っている間
  2. 表示されたポップアップメニューから正しいエントリを選択します
  3. 使用する Arrow Right キー展開サブメニュー
  4. 「検査の抑制」オプションを探す

これは、PhpStormでの外観です(スクリーンショットには、「ファイル全体の抑制」ではなく、「ステートメントの抑制」オプションが表示されています)。

enter image description here

関連: https://stackoverflow.com/a/20803118/783119

21
LazyOne

「py.testを間違って使用しているのではないでしょうか?」と答えるには質問:

フィクスチャのインポートは、従うのに最適なパターンではありません。代わりに、フィクスチャを必要とするパッケージのconftest.pyファイルにフィクスチャを配置することをお勧めします。フィクスチャが2つのパッケージで使用されている場合は、親ディレクトリにconftest.pyを配置し、そこにフィクスチャを配置します。これにより、未使用のインポートとシャドウイングの警告が削除されます。

pytest.raises名前空間の問題については、現時点ではこれに対する解決策はないと思います。これはpylintも苦しんでいます(そして、これらの問題に対処するためにpylintへのpy.testプラグインを作成する努力があると思います)。したがって、結局のところ、リンターはpy.testについて少し知る必要があると思います。

6
flub