0

ユニットテストとノーズ パラメータ化を使用しており、条件に基づいてさまざまなデコレータをテストに適用したいと考えています。

テストがあり、テストをスキップするか、args に渡された引数に基づいてunittest.skipテストを実行したいと考えています。@parameterized.expand(args)

test に適切なデコレータを適用する別のデコレータが必要だと思いますが、どうすればよいかわかりました。

擬似コードは次のようになります。

@validate_data(args)
    def test(args):
    ...

args == None またはそれ以外の場合@validate_data(args)に適用されるデコレータunittest.skip@parameterized.expand(args)

コメント/提案は大歓迎です。

4

1 に答える 1

2

デコレータは関数として呼び出すこともできます。はおよび と同等@decoratorです。したがって、これらの関数の値をデコレータで条件付きで返すことができます。以下に例を示します。decorator(func)@decorator(args)decorator(args)(func)

def parameterized_or_skip(args=None):
    if args:
        return parameterized.expand(args)
    return unittest.skip(reason='No args')

...

@parameterized_or_skip(args)
def my_testcase(self, a, b):
    pass
于 2016-07-22T01:06:22.590 に答える