Pysys Baserunner に新しい「モード」を追加する方法を検討しています。
特に、検証部分を再実行するだけの検証モードを追加したいと思います。テストケースを作成していて、完全なテストケースを再実行することなく現在の出力に適合するように検証条件を調整しようとする場合に役立ちます。
元のクラスを変更せずにこれを行う最善の方法は何ですか?
Pysys Baserunner に新しい「モード」を追加する方法を検討しています。
特に、検証部分を再実行するだけの検証モードを追加したいと思います。テストケースを作成していて、完全なテストケースを再実行することなく現在の出力に適合するように検証条件を調整しようとする場合に役立ちます。
元のクラスを変更せずにこれを行う最善の方法は何ですか?
残念ながら、これにはフレームワークからのサポートが必要です。問題は、BaseRunner クラスが常に出力ディレクトリを自動的にパージすることであり、これを回避できるようにするフレームワークへのフックがありません。たとえば、出力サブディレクトリを手動で移動して、検証を再実行して「繰り返し」(同じディレクトリレベル) と言ってから、; を使用できます。
from pysys.constants import *
from pysys.basetest import BaseTest
class PySysTest(BaseTest):
def execute(self):
if self.mode=='repeat': pass
def validate(self):
if self.mode=='repeat':
self.output=os.path.join(self.descriptor.output, 'repeat')
ここでは、execute と validate の実装を省略しました。テストの記述子にモードを追加する必要があります
<classification>
<groups>
<group></group>
</groups>
<modes>
<mode>repeat</mode>
</modes>
</classification>
「pysys.py run -mrepeat」を使用して実行します。これは、実行に時間がかかる場合のデバッグに役立ちますが、すぐに使用できる、つまり、以前に実行したテストに対して検証を実行するためのランナーへの最上位オプションを望んでいない可能性があります。これについて機能リクエストを追加します。