studio
2024.10
false
- リリース ノート
 - 基本情報
 - セットアップと構成
 - オートメーション プロジェクト
 - 依存関係
 - ワークフローの種類
 - 制御フロー
 - ファイルの比較
 - オートメーションのベスト プラクティス
 - ソース管理との連携
 - デバッグ
 - ログ
 - 診断ツール
 - ワークフロー アナライザー
- ワークフロー アナライザーについて
 - ST-DBP-002 - 多数の引数
 - ST-DBP-003 - 空の catch ブロック
 - ST-DBP-007 - 複数のフローチャートレイヤー
 - ST-DPB-010 - [ワークフロー] または [テスト ケース] の複数のインスタンス
 - ST-DBP-020 - 未定義の出力プロパティ
 - ST-DBP-021 - ハードコードされたタイムアウト
 - ST-DBP-023 - 空のワークフロー
 - ST-DBP-024 - 永続性アクティビティの確認
 - ST-DBP-025 - 変数のシリアル化の前提条件
 - ST-DBP-026 - [待機] アクティビティの使用
 - ST-DBP-027 - Persistence のベスト プラクティス
 - ST-DBP-028 - 引数のシリアル化の前提条件
 
- ST-USG-005 - ハードコードされたアクティビティ引数
 - ST-USG-009 - 未使用の変数
 - ST-USG-010 - 未使用の依存関係
 - ST-USG-014 - パッケージの制限
 - ST-USG-017 - パラメーターの修飾子が無効
 - ST-USG-020 - 最小ログ メッセージ
 - ST-USG-024 - 未使用で保存されたままの値
 - ST-USG-025 - 保存した値の誤用
 - ST-USG-026 - アクティビティの制限
 - ST-USG-027 - 必要なパッケージ
 - ST-USG-028 - ファイル テンプレートの呼び出しの制限
 - ST-USG-027 - 必須のタグ
 - ST-USG-034 - Automation Hub URL
 
 - 変数
 - 引数
 - インポートされた名前空間
 - コード化されたオートメーション
 - トリガーベースの有人オートメーション
 - オブジェクト リポジトリ
 - ScreenScrapeJavaSupport ツール
 - 拡張機能
 - Studio でのテスト
 - トラブルシューティング
 
重要 :
このコンテンツの一部は機械翻訳によって処理されており、完全な翻訳を保証するものではありません。
新しいコンテンツの翻訳は、およそ 1 ~ 2 週間で公開されます。

Studio ガイド
最終更新日時 2025年10月23日
テスト ケース内では、テスト ケースの実行前 (Before) と実行後 (After) に特定のアクションを実行できます。これらのコンテキストは、通常、リソースの設定と破棄、ログ記録の実行、およびテスト環境の管理に使用されます。
               
            
            
            BeforeRunContext(設定): Before の実行は、テスト ケースのメインの実行前にアクションを実行するために使用されます。多くの場合、テスト環境の初期状態の設定やリソースの準備に使用されます。Before コンテキストの一般的なユース ケースには、以下のようなものがあります。- テストに必要な変数またはデータを初期化する。
 - 外部システムまたはデータベースへの接続を設定する。
 - テスト実行の開始をログに記録する。
 - テストで使用するアプリケーションまたは Web ページを開く。
 - テスト ケースの実行前に固有の例外を設定する。
 
AfterRunContext(ティアダウン): After (実行後) は、テスト ケースのメイン実行の完了後にアクションを実行するために使用されます。通常、リソースのクリーンアップ、操作の完了、およびテスト結果の記録に使用されます。After コンテキストの一般的なユース ケースは以下のとおりです。- テスト中に使用されたアプリケーションまたは Web ページを閉じる。
 - データベース接続やネットワーク リソースなどのリソースを解放する。
 - Before コンテキストとメイン実行で記録された例外をキャッチして出力する。
 
コード化されたオートメーションでは、実行の前後に実行されるアクションのカスタム インターフェイスを作成することができます。そのためには、メイン クラスに隣接する 
            
            
            IBeforeAfterRun インターフェイスを宣言し、これらのアクションに独自のカスタム ロジックを実装します。
            BeforeRunContext の定義を調べると、
                  以下のコード スニペットが
                  見つかります。// Context of the run before the execution.
public class BeforeRunContext
{
    // The relative path of the workflow.
    public string RelativeFilePath { get; set; }
}// Context of the run before the execution.
public class BeforeRunContext
{
    // The relative path of the workflow.
    public string RelativeFilePath { get; set; }
}このコンテキストは、オートメーションの実行前のステートを表します。実行されるワークフローの相対パスに関する情報が含まれます。ユース ケースに応じて、ここで例外を設定できます。
AfterRunContext の定義を調べると、
                  以下のコード スニペットが
                  見つかります。// Context of the run after the execution.
public class AfterRunContext
{
    // The relative path of the workflow.
    public string RelativeFilePath { get; set; }
    // The exception caught in execution if any.
    public Exception Exception { get; set; }
}// Context of the run after the execution.
public class AfterRunContext
{
    // The relative path of the workflow.
    public string RelativeFilePath { get; set; }
    // The exception caught in execution if any.
    public Exception Exception { get; set; }
}このコンテキストは、オートメーションの実行後のステートを表します。実行されたワークフローの相対パスと、実行前および実行中にキャッチされた例外に関する詳細が含まれます。
Before と After を使用すると、コード化されたテスト ケースの前後にアクションを定義して、オートメーションを強化できます。このカスタム実装は、コード化されたテスト ケース内で作成することも、別の部分クラスとして作成することもできます。このチュートリアルでは、設定、破棄、およびログをコード化されたテスト ケースに統合する方法について説明します。
               
               
               
               コード化されたテスト ケース内での実装
Before (実行前) および After (実行後) インターフェイスは、コード化されたテスト ケース内に直接実装できます。
- コード化されたテスト ケースが存在する
                        パブリック クラス内の場合は、
IBeforeAfterRunインターフェイスを 追加します。このクラスは赤で強調表示され、考えられる修正内容 が示されます。public class MyTest : CodedWorkflow, IBeforeAfterRunpublic class MyTest : CodedWorkflow, IBeforeAfterRun - [考えられる修正内容を表示] を選択するか、
Ctrl + .キーを押して [インターフェイスを実装] を選択します。これにより、以下のような既定のインターフェイスが生成 されます。public void After(AfterRunContext context) { throw new NotImplementedException(); } public void Before(BeforeRunContext context) { throw new NotImplementedException(); }public void After(AfterRunContext context) { throw new NotImplementedException(); } public void Before(BeforeRunContext context) { throw new NotImplementedException(); } - 必要に応じて実装を変更します。 
                        示されているコード例では、コンテキストは 実行前にメッセージをログに記録し、 実行後に例外を確認します。
public void After(AfterRunContext context) { if (context.Exception != null) { Log(context.Exception.Message); } } public void Before(BeforeRunContext context) { Log("this is before"); }public void After(AfterRunContext context) { if (context.Exception != null) { Log(context.Exception.Message); } } public void Before(BeforeRunContext context) { Log("this is before"); } 
カスタム部分クラスを使用した実装
Before および After 実行のインターフェイスは、カスタム部分クラスを使用してプロジェクト内の特定の 
                  
                  
                  .cs ファイルにのみ実装できます。
                  - コード ソース ファイルを作成します。ここに Before および After 実行のインターフェイスを実装します。この例では、ファイルに 
TestCaseBaseという名前を付けます。- public class の横に 
IBeforeAfterRunインターフェイスを追加します。このクラスは赤で強調表示され、考えられる修正内容が示されます。注: カスタム部分クラス (この例ではTestCaseBase) は、CodedWorkflowクラスを継承する必要があります。これにより、このカスタム部分クラスを継承する他のcsファイルを期待どおり実行できます。public class TestCaseBase : CodedWorkflow, IBeforeAfterRunpublic class TestCaseBase : CodedWorkflow, IBeforeAfterRun - [考えられる修正内容を表示] を選択するか、
Ctrl + .キーを押して [インターフェイスを実装] を選択します。これにより、以下のような既定のインターフェイスが生成されます。public void After(AfterRunContext context) { throw new NotImplementedException(); } public void Before(BeforeRunContext context) { throw new NotImplementedException(); }public void After(AfterRunContext context) { throw new NotImplementedException(); } public void Before(BeforeRunContext context) { throw new NotImplementedException(); } - 必要に応じて実装を変更します。
                              
示されている例では、コンテキストは実行前にメッセージをログに記録し、実行後に例外を確認します。
public void After(AfterRunContext context) { if (context.Exception != null) { throw context.Exception; } else { Log("Test " + context.RelativeFilePath + " finished with no exception."); } } public void Before(BeforeRunContext context) { Log("Execution started for " + context.RelativeFilePath); }public void After(AfterRunContext context) { if (context.Exception != null) { throw context.Exception; } else { Log("Test " + context.RelativeFilePath + " finished with no exception."); } } public void Before(BeforeRunContext context) { Log("Execution started for " + context.RelativeFilePath); } 
これで、このカスタム部分クラスを使って、同じクラスを継承する.csファイルでのみ、同じ Before および After 実行のインターフェイスを使用できるようになります。 - public class の横に 
 - コード化されたオートメーションを作成します。この例では、
TestCaseという名前のコード化されたテスト ケースを作成します。カスタム部分クラスの Before と After 実行のインターフェイスを使用するには、コード化されたテスト ケースがこの部分クラスから継承することを確認します。public class TestCase : TestCaseBase { [TestCase] public void Execute() { Log("Executing the test..."); }public class TestCase : TestCaseBase { [TestCase] public void Execute() { Log("Executing the test..."); } 
この実装がどのように機能するかを確認するには、以下の出力ログをご覧ください。
                  
                  
               Execution started for file: TestCase.cs
 [Info] IBeforeAfterRunExamples execution started
 [Info] Execution started for TestCase.cs
 [Info] Executing the test...
 [Info] Test TestCase.cs finished with no exception.
 [Info] IBeforeAfterRunExamples execution ended in: 00:00:00 Execution started for file: TestCase.cs
 [Info] IBeforeAfterRunExamples execution started
 [Info] Execution started for TestCase.cs
 [Info] Executing the test...
 [Info] Test TestCase.cs finished with no exception.
 [Info] IBeforeAfterRunExamples execution ended in: 00:00:00CodedWorkflow の部分クラスを使用して実装する
                  
                  
                  
                  Before および After コンテキスト インターフェイスは、プロジェクト内の他のコード化されたテスト ケースまたはコード化されたワークフローが継承できる 
                  
                  
                  CodedWorkflow 部分クラスを使用して実装できます。この実装は、プロジェクト内のすべてのコード化されたテスト ケースとコード化されたワークフローに適用されます。
                  - コード ソース ファイルを作成し、
CodedWorkflow.csとは異なる名前を付けます。そうしないと、部分クラスが既存の読み取り専用クラスCodedWorkflowと競合します。 - Before および After コンテキストのカスタム インターフェイスを実装する部分クラスを構築します。
 - クラスの名前を 
CodedWorkflowに変更します。そうしないと、利用可能なサービスを利用できなくなります。 - コード化されたソース ファイル内のクラスが 
CodedWorkflowBaseクラスを継承していることを確認します。 - コード ソース ファイルの先頭に名前空間 
UiPath.CodedWorkflowsを追加します。using System; using System.Collections.Generic; using UiPath.CodedWorkflows;using System; using System.Collections.Generic; using UiPath.CodedWorkflows; - コード ソース ファイルのクラス内に、
                        
IBeforeAfterRunをインクルードします。namespace TestAutomationProject1 { public partial class CodedWorkflow : CodedWorkflowBase, IBeforeAfterRunnamespace TestAutomationProject1 { public partial class CodedWorkflow : CodedWorkflowBase, IBeforeAfterRun IBeforeAfterRun上でホバーして [考えられる修正内容を表示] を選択するか、IBeforeAfterRunを選択してからCtrl + .キーを押します。- [Implement interface] を選択します。
                        これにより、以下のような既定の実装が作成 されます。
public void After(AfterRunContext context) { throw new NotImplementedException(); } public void Before(BeforeRunContext context) { throw new NotImplementedException(); }public void After(AfterRunContext context) { throw new NotImplementedException(); } public void Before(BeforeRunContext context) { throw new NotImplementedException(); } - 任意で、ユース ケースに応じてインターフェイスをさらにカスタマイズすることもできます。以下のコード サンプルでは、コンテキストは実行前にメッセージを出力します。実行後に例外がスローされていたかどうかを確認し、スローされていた場合は再びメッセージを出力します。
public void After(AfterRunContext context) { if (context.Exception != null) { Log(context.Exception.Message); } } public void Before(BeforeRunContext context) { Log("this is before"); }public void After(AfterRunContext context) { if (context.Exception != null) { Log(context.Exception.Message); } } public void Before(BeforeRunContext context) { Log("this is before"); }