OutSystemsで現在推奨されているユニットテストツールはForgeにある、BDDFrameworkです。これを外部から実行する方法です。
環境内のテストケースを自動抽出するためにForgeにあるCI/CD Probeを使います。抽出したテストは、BDDFrameworkが提供しているREST APIで実行可能です。
サンプル
https://www.outsystems.com/forge/Component_Overview.aspx?ProjectId=7086
CICDProbeTest Screenです。
事前準備として、インストール後、ConsumeするREST APIの設定が必要です。画面に設定方法を書いてあるので参考にしてください。
環境
Personal Environment(Version 11.8.0 (Build 10304))
Service Studio(Version 11.7.2)
CI/CD Probe(Forgeコンポーネント、Version 2.1.0)
BDDFramework
CI/CD Probeの役割
OutSystemsにおけるCI/CDパイプライン内で使う情報をREST形式で提供するコンポーネントです。
ただし、2020/4/23時点では、目立った機能は、環境内のBDD Frameworkのテストスイートをリストアップする機能だけです。
なお、BDD Frameworkは、Forgeで提供されているコンポーネントで、自動実行できるユニットテスト作成などに使います。
BDD Frameworkの使い方は以前書いた記事を参考にしてください。1テストスイートは1画面です。画面をAnonymousでもアクセスできるようにするのを忘れずに。
OutSystemsでテスト駆動開発の写経するためのTips
OutSystemsの標準的なCI/CDパイプラインについては、以前メモを作りました。
OutSystemsのCI/CD関係情報まとめ(2020/04/18時点)
CI/CD Probeを使った回帰テストの実行
CI/CD ProbeのREST APIを呼び出し、環境内の全テストをリストアップ。
このScanBDDTestEndpointsをパラメータ無しで呼ぶと、全テストをリストアップしてくれます。
戻り値はモジュール毎に、Screenを列挙したものになっています。
BDDFrameworkのテストスイートを実行する
BDDFrameworkは、テストを実行するためのREST APIを提供しています。
2つのInput Parameterは必須ですが、↑でCI/CD Probeから取得したモジュール名とScreen名が使えます。
つまり、CI/CD ProbeのREST APIの結果をループで順番に実行していく場合、
TestESpace:ScanBDDTestEndpointsResponses.Current.BDDTestEndpointsInfo.EspaceName
TestSuiteScreen:ScanBDDTestEndpointsResponses.Current.BDDTestEndpointsInfo.WebFlows.Current.WebScreens.Current.Name
のように指定します。
あとは、RunTestSuiteの結果を一端Entityに格納するなどした上で、Processで開発者に結果確認タスクを降るなり、結果メール送信するなりすればいいでしょう。
応用的な利用方法の検討
本来、CI/CD ProbeのScanBDDTestEndpointsは回帰テストを専用環境で実行することが想定されています。
しかし、例えばScrumで開発しているとしたら、スプリント終了まで回帰テストが壊れていることに気づけないのは痛いですね。
そこで、開発環境に上記の通知まで行うTimerを日次でしかけておくと解決できます。