5

pylint や pyflakes 用のノーズ プラグインはあるのでしょうか?

現在、鼻のテストにカバレッジ組織(PEP8) プラグインを使用しています。

事前にTnx

4

1 に答える 1

1

Pyflakes を使用するテスト ジェネレーターを作成したことがあります。これは Nose プラグインではありませんが、私のニーズには十分に近いものでした。

import os
import _ast

from pyflakes import checker

import your_application

TOP = os.path.dirname(os.path.dirname(your_application.__file__))

class PyflakesError(AssertionError):
    def __str__(self):
        path = self.args[0]
        messages = self.args[1]
        messages.sort(key=lambda m: m.lineno)
        return 'checking %s\n' % path + '\n'.join(map(str, messages))

def check(path):
    code = open(os.path.join(TOP, path)).read()
    tree = compile(code, path, "exec", _ast.PyCF_ONLY_AST)
    w = checker.Checker(tree, path)
    if w.messages:
        raise PyflakesError(path, w.messages)

def test():
    for root, dirs, files in os.walk(TOP):
        for name in files:
            if not name.endswith('.py'):
                continue
            yield check, os.path.relpath(os.path.join(root, name), TOP)

        def is_package(d):
            return os.path.exists(os.path.join(root, d, '__init__.py'))
        dirs[:] = filter(is_package, dirs)

このtest関数は、 を含むディレクトリ内の各 Python ファイルのテスト ケースを生成しますyour_application。必要に応じて調整TOPして、他のディレクトリをテストできます。

于 2012-09-12T10:00:10.137 に答える