自動システム テスト用の「テスト フレームワーク」を評価しています。これまでのところ、Python フレームワークを探しています。py.testまたはnoseでは、Googleテストフレームワークで知っているEXPECTマクロのようなものは見られません。最初の失敗でテストを中止せずに、1 つのテストで複数のアサーションを作成したいと考えています。これらのフレームワークで何か不足していますか、それとも機能しませんか? 自動化されたシステム テストに使用できる Python テスト フレームワークに関する提案はありますか?
1385 次
5 に答える
2
鼻を使って行っている機能テストに似たものが欲しかったのです。私は最終的にこれを思いついた:
def raw_print(str, *args):
out_str = str % args
sys.stdout.write(out_str)
class DeferredAsserter(object):
def __init__(self):
self.broken = False
def assert_equal(self, expected, actual):
outstr = '%s == %s...' % (expected, actual)
raw_print(outstr)
try:
assert expected == actual
except AssertionError:
raw_print('FAILED\n\n')
self.broken = True
except Exception, e:
raw_print('ERROR\n')
traceback.print_exc()
self.broken = True
else:
raw_print('PASSED\n\n')
def invoke(self):
assert not self.broken
つまり、テストが成功したか失敗したかを示す文字列を出力しています。テストの最後に、実際に実際のアサーションを行う invoke メソッドを呼び出します。これは絶対に好ましいことではありませんが、この種のテストを処理できる Python テスト フレームワークは見たことがありません。また、この種のことを行うためのノーズ プラグインの作成方法を理解することもできませんでした。:-/
于 2009-08-20T17:25:31.587 に答える
1
提案を求められたので、ロボット フレームワークを提案します 。
于 2009-08-20T17:28:36.603 に答える
-1
-x
コマンドラインでオプションを渡した場合、nose は最初の失敗でのみ中断します。
test.py:
def test1():
assert False
def test2():
assert False
-x オプションなし:
C:\temp\py>C:\Python26\Scripts\nosetests.exe test.py FF ================================================== ==================== 不合格: test.test1 -------------------------------------------------- -------------------- トレースバック (最新の呼び出しが最後): ファイル「C:\Python26\lib\site-packages\nose-0.11.1-py2.6.egg\nose\case.py」、行 183、runTestで self.test(*self.arg) test1 のファイル「C:\temp\py\test.py」、2 行目 偽を主張する アサーション エラー ================================================== ==================== 不合格: test.test2 -------------------------------------------------- -------------------- トレースバック (最新の呼び出しが最後): ファイル「C:\Python26\lib\site-packages\nose-0.11.1-py2.6.egg\nose\case.py」、行 183、runTestで self.test(*self.arg) test2 のファイル「C:\temp\py\test.py」の 5 行目 偽を主張する アサーション エラー -------------------------------------------------- -------------------- 0.031 秒で 2 つのテストを実行 失敗 (失敗 = 2)
-x オプションを使用:
C:\temp\py>C:\Python26\Scripts\nosetests.exe test.py -x ふ ================================================== ==================== 不合格: test.test1 -------------------------------------------------- -------------------- トレースバック (最新の呼び出しが最後): ファイル「C:\Python26\lib\site-packages\nose-0.11.1-py2.6.egg\nose\case.py」、行 183、runTestで self.test(*self.arg) test1 のファイル「C:\temp\py\test.py」、2 行目 偽を主張する アサーション エラー -------------------------------------------------- -------------------- 0.047 秒で 1 つのテストを実行 FAILED (失敗 = 1)
鼻のドキュメントを確認することを検討してください。
于 2009-08-20T16:41:49.753 に答える