UiPath:カスタムアクティビティとDEBUG
皆もすなるQiitaといふものを、儂もしてみむとてするなり。
と言う訳で、こん**は!はなっち!です。
★★★この記事はUiPathブログ発信チャレンジ2021サマー、7/3の記事です。★★★
今回は、作った「カスタムアクティビティ」をどうテストしていくかをまとめてみました!
無論ですが、ロボットはテストをして、必要な機能が実装されているかを確認します。
テストには、以下の二つのカテゴリがあります。
1)xaml単体としてのテスト
2)PUBLISHしたアクティビティパッケージとしてのテスト
1)xaml単体としてのテストは、XAMLファイルをUiPath Stusioで開いて、その状態でテストを行う方法です。
カスタムアクティビティは、その多くは引数を受け取り、処理をして、引数に返すようなものでしょう。
これをテストするには、カスタムアクティビティのxaml単体をINVOKEするためのXAMLファイルを用意します。例えば"T_カスタムアクティビティの名前"のようなシーケンスでいいでしょう。
このシーケンスのxamlファイルは、「ドライバxaml」と言い、このファイルには、「ワークフロー ファイルを呼び出し」アクティビティを配します。
カスタムアクティビティの引数に値を設定するのは、本来はパラメタから設定できるようになるのですが、ここの時点では「ワークフロー ファイルを呼び出し」アクティビティの「引数をインポート」から設定します。
無論、呼び出す前に「代入アクティビティ」などを使って、必要な変数に値を設定します。変数を使わずに、直接値を記述してもいいですが、試験のバタエティのたびに値を見直さないといけませんので、おすすめしません。
余談ですが、カスタムアクティビティなどの戻り値を、固定的に返すだけのxamlファイルを、「スタブxaml」と言います。カスタムアクティビティを使用した後の処理を試験する場合で、カスタムアクティビティから固定的な値を返すだけの機能を持ちます。
カスタムアクティビティを作っている側が使用するのが「ドライバxaml」、カスタムアクティビィを使う側が使用するのが「スタブxaml」ですね。
2)PUBLISHしたアクティビティパッケージとしてのテストは、実際にカスタムアクティビティとしてPUBLISHし、できたnupkgファイルをインストールしてテストを行う方法です。
単体テストの場合は、同一プロセスの中でテストができましたが、nupkgファイルでのテストの場合、同一プロセスでPUBLISHしたnupkgを読み込もうとすると内部矛盾を起こすので、テストできません。
新たなプロセス、例えばT_カスタムアクティビティパッケージ名を作成し、改めて「パッケージを管理」でPUBLISHしたnupkgをインストールします。
xaml単体でのテストは実施されているので、ここでのテストは以下の事に注目します。
・カスタムアクティビティをドラッグ&ドロップした時に名称が区別できるようになっているか
・階層が正しく展開され、その配下にカスタムアクティビティが存在しているか
・余計なxamlファイルが見えていないか(「パブリッシュから除外」として設定すると、存在はしますが、非表示となります)
・必須、任意の引数が正しく設定されているか
カスタムアクティビティをPUBLISHしてからテストをする場合に、Orchestratorではなく、ローカルフォルダ、例えばUiPathフォルダ配下に対して行います。
PUBLISHして、試験をするために「パッケージを管理」画面からインストールし、テストします。
そのテストのあとに、ちょっとした誤記などがあった場合、同じバージョンでPUBLISHしたくなりますが、これは絶対ダメです。
同じバージョンでPUBLISHできますが、既にインストールされていると認識され、新しいカスタムアクティビティが展開されません。
ですので、必ず現状のバージョンより上のバージョンにする、あるいは特に意識しなければ、UiPath Studioが採番してくれます。
※バージョンの話
UiPathでのバージョンは、セマンティック バージョンで管理されます。
セマンティック バージョン管理スキームは、Major.Minor.Patch[-Suffix] という形式です。ここで、
・Major は、メジャーバージョンです。
・Minor は、マイナーバージョンです。
・Patch は、パッチバージョンです。
・-Suffix (任意) は、パッチバージョンに続いて、ハイフンの後にドットで区切られた識別子が付加されます。これは、プレリリースバージョンを表します。
以前は、レガシーバージョンで管理されていましたが、いつの日か、変わっています。
プロジェクトにより生成されるレガシーのバージョン番号の形式は、「M.m.bbbb.rrrrr」です。それぞれの意味は次のとおりです。
・M はメジャーバージョンです。
・m はマイナーバージョンです。
・bbbb はビルドバージョンです。
・rrrrr はリビジョンバージョンです。
メジャーバージョンとマイナーバージョンは project.json ファイルでも編集できますが、ビルドバージョンとリビジョンバージョンはアルゴリズムに従って生成されます。ビルドの値は、2000年1月1日からの経過日数です。リビジョンの値は、現時点からリリース時までに経過した秒数です。この結果を2で割って、リビジョン番号が65535を超えないようにします。
詳しくは以下のサイトをご覧ください。
https://docs.uipath.com/studio/lang-ja/docs/about-automation-projects
おわりに
いかがでした?
▼ロボットであろうが、カスタムアクティビティであろうが、テストは重要です。
▼テストの方法には、単体xamlで実施する方法の次に、PUBLISHしたnupkgをインストールして、本番利用さながらのテストで実施する方法があります。
▼テストを実施したあと、再度PUBLISHする場合には、現在のバージョンより上のバージョンにしなければなりません。
是非UiPathでのロボ開発の一助になればと思っています。
ありがとうございました!