ユーザー コード リファレンス:知っておきたいRanorex API
ユーザー コードの使用において、よく使用するRanorex APIについて紹介します。
- テスト結果レポートへのログ出力
- オブジェクトの検出結果による条件分岐
- リポジトリ情報の取得
- テスト構成情報の取得
※本記事で紹介しているRanorex APIは、Ranorex v9.3.2にて確認をおこなっています。
※ユーザー コードの機能概要については、こちらの記事をご参照ください。
※本記事で紹介しているRanorex APIについては、API ドキュメントをご参照ください。
テスト結果レポートへのログ出力
Report.Log() メソッドを使用することにより、コード内のデータをテスト結果レポートに出力することができます。
public void Sample()
{
Report.Log(ReportLevel.Info, "カテゴリ名", "メッセージ");
}
メソッドの第1引数にレポートレベルを設定し、第2引数にカテゴリ名、第3引数に出力したいデータやメッセージを指定します。
※Ranorex.Core.Reporting.TestReport.ReportEnvironment.ReportFileDirectoryと、Ranorex.Core.Testing.TestSuite.WorkingDirectory プロパティを使用することにより、テスト結果レポートの出力ディレクトリの情報を取得することができます。レポートの出力ディレクトリに、エビデンスとなるような外部ファイルを一緒に格納したい場合に使用できます。
public void Sample()
{
// ##### レポートパス(絶対パス)を取得 #####
// レポートパス(絶対パス)を取得
string repPath = Ranorex.Core.Reporting.TestReport.ReportEnvironment.ReportFileDirectory;
// レポート出力
Report.Log(ReportLevel.Info, "User", repPath);
// ##### レポート格納ディレクトリを取得 #####
// 作業ディレクトリ(絶対パス)を取得
string workPath = Ranorex.Core.Testing.TestSuite.WorkingDirectory;
// レポートパス(絶対パス)から、レポート格納ディレクトリを取得
workPath += "\\";
repPath += "\\";
Uri u1 = new Uri(workPath);
Uri u2 = new Uri(repPath);
Uri relativeUri = u1.MakeRelativeUri(u2);
string relativePath = relativeUri.ToString();
// レポート出力
Report.Log(ReportLevel.Info, "User", relativePath);
}
オブジェクトの検出結果による条件分岐
RepoItemInfo.Exists() メソッドを使用することにより、対象のオブジェクトの検出の有無を確認することができます。メソッドの戻り値(bool型)として True/False が返されます。オブジェクトが検出された場合は True を返し、検出されなかった場合は False を返します。
public void Sample(RepoItemInfo itemInfo)
{
if(itemInfo.Exists(5000))
{
Report.Log(ReportLevel.Success, "User", "Success");
}else{
Report.Log(ReportLevel.Failure, "User", "Failure");
}
}
メソッドの第1引数にオブジェクトを検出時のタイムアウト(単位:ミリ秒)を設定します。何も指定しない場合は、対象のオブジェクト(リポジトリアイテム)のプロパティにある Effective Timeout がタイムアウト値として使用されます。
リポジトリ情報の取得
リポジトリに関する情報を取得します。
public void sample(RepoItemInfo itemInfo)
{
// アダプターアイテム名の取得
string adupterItemName = itemInfo.Name;
// アダプターアイテムのRanoreXPathの取得
string adupterItemXPath = itemInfo.Path;
// リポジトリ名の取得
string repoName = itemInfo.FullName;
// リポジトリのRanoreXPath(フルパス)の取得
string repoXPath = itemInfo.AbsolutePath;
}
※リポジトリ名は、<アプリフォルダー名>.<ルートフォルダー名>.<リポジトリーアイテム名>の形式で取得されます。シンプルフォルダーを設定している場合は、シンプルフォルダー名も含まれます。
テスト構成情報の取得
実行されているテストケースにおけるテストスイート、コンテナー(テストケース/スマートフォルダー)およびモジュール(レコーディングモジュール/コードモジュール)の名前を取得します。
※コード(対象メソッド)を呼び出したモジュール、およびそのモジュールを配置しているテストスイート、コンテナーの情報が取得されます。
※コードを実行したコンテナーが存在しない場合は例外が発生します。たとえば、テストスイート直下に配置したSETUP内でコードを実行させた場合、実行されている コンテナーが無いため、例外が発生します。
// テストスイート
string testSuiteName = TestSuite.Current.Name; // スマートフォルダー名を取得
// テストケース
var testCase = (TestCaseNode)TestSuite.CurrentTestContainer;
string testCaseName = testCase.Name; // テストケース名の取得
string testCaseDescription = testCase.Comment.ToString(); // Description の取得
// スマートフォルダー
var smartFolder = (SmartFolderNode)TestSuite.CurrentTestContainer;
string smartFolderName = smartFolder.Name; // スマートフォルダー名の取得
string smartFolderDescription = smartFolder.Comment.ToString(); // Description の取得
// モジュール
TestModuleLeaf module = (TestModuleLeaf)TestModuleLeaf.Current;
string moduleName = module.Name; // モジュール名の取得
string moduleDescription = module.Comment.ToString(); // Description の取得