Python での Qunit のアサーションに対する同様のアプローチを見つけようとしています。Qunit でアサーションを使用する場合、メッセージ パラメーターは非常にわかりやすい方法で使用されます。
test( "test", function() {
ok( fn([])==None, "Function should return 0 if no users" );
ok( fn(["Test User"])==1, "Function should return 1 is users supplied" );
});
一方、Python の unittest モジュールは message パラメータを使用しますが、これはやや否定的なコンテキストです。これらは、アサーションが失敗した場合にのみ表示されます。
class TestSequenceFunctions(unittest.TestCase):
def test_choice(self):
seq = range(10)
element = random.choice(seq)
self.assertTrue(element in seq, msg="Element not found in sequence")
Qunit の最終結果は、仕様ドキュメントと比較できるより明確なトランスクリプトが存在することです。
Python では、おそらく次のように書くことで同様のアプローチが実現されることを認識しています。
def test_choice_ensure_element_exists_in_sequence(self):
しかし、それは同じではありません。出力は適切な方法で表示されず、テスト ライフサイクルは使用するラベルごとにセットアップとティアダウンを実行しますが、これは必ずしも必要なものではありません。
このアプローチを取るライブラリが存在する可能性があるため、この問題はすでに解決されている可能性があります。ただし、python unittest ライブラリも pytest もこの方法では機能しないようです。