2

Cruise Controlビルドでは、3つのブラウザーに対して一連のSeleniumテストを実行します。これを行うには、MSTestを介して同じ一連のテストを実行しますが、実行のたびにapp.configファイルを変更して、使用するブラウザーをセットアップします。

問題は、Cruise ControlのMSTestレポートページに3つのテスト実行が表示されますが、各テスト実行にどのブラウザーが使用されているかを確認できないことです。

理想的には、ブラウザの名前をパラメータとしてMSTestに渡して、ブラウザがtrxファイルに書き込まれるようにしたいのですが、その可能性はありませんでした。私が考えているのは、trxファイルに指定された出力名を付けてから、Powershellスクリプトを使用してこのファイル内のxmlを変更することだけです。

もっといいアイデアはありますか?

4

2 に答える 2

4

Elenaのアドバイスに従って、MSTestのTestContextオブジェクトを調べました。テストスイートで特定の単体テストを作成して、次のようにブラウザ名をtrxファイルに追加することになりました。

[TestClass]
public class ConfigurationTests
{
    public TestContext TestContext { get; set; }

    [TestMethod]
    public void DisplayBrowserUsedForSeleniumTests()
    {
        string browserName = ConfigurationManager.AppSettings["DriverName"];
        TestContext.WriteLine("for {0} browser.", browserName);
    }
}

そして、私の出力trxファイルには、次のようなものがあります。

<UnitTestResult testName="DisplayBrowserUsedForSeleniumTests">
  <Output>
    <TextMessages>
      <Message>for Firefox browser</Message>
    </TextMessages>
  </Output>
</UnitTestResult>

最後に、MSTestレポートのCruise Control xslt変換を変更して、要約タイトルにブラウザー情報を表示しました。

   <h2>Summary <xsl:value-of select="*[local-name()='Results']/*[local-name()='UnitTestResult'][@testName='DisplayBrowserUsedForSeleniumTests']"/></h2>
于 2012-06-20T13:19:44.763 に答える
1

ここにあなたを助けることができるいくつかの投稿があります:

私はそれを試しませんでしたが、彼らはあなたが探しているもののように聞こえます。

編集: 上記のリンクがいつか壊れた場合のために:

trx結果ファイルへのカスタムデータの追加

TestProperty属性をTestMethodに追加すると、trxファイルに表示されます。

[TestProperty("Severity", "1")]

ありがとう、

アヌジ

singhhomeによって回答としてマーク2010年8月20日金曜日午後2時34分2010年8月20日金曜日午前5時53分

追加のテスト結果情報を追加します。

TRXファイルにファイルを追加するには-すべてのテストでTestContextに存在する次のメソッドを使用してこれを追加できます。

TestContext.AddResultFile(filePath) ここで、filePathは、テスト結果ファイルに追加するファイルのパスです。

テスト実行中にTestResultファイル名を取得するには-次のプロパティを使用してこれを取得できます

TestContext.TestRunDirectory 完全なパスを使用して、テスト実行のログが保存されるディレクトリ名を指定します。テスト実行の場合、ディレクトリ名とtrxファイル名は同じになるため、この文字列を.trxと連結すると、テスト結果ファイルに非常によくアクセスできます。

以下はサンプルコードスニペットです。

[TestMethod]
public void CodedUITestMethod1()
{
        //add a file stored at c:\ location to the test result file
        this.TestContext.AddResultFile(@"c:\file.bmp");

        //Print the trx file name
        string testRunDirectory = TestContext.TestRunDirectory;
        string testRunTRXFileName = String.Concat(testRunDirectory, ".trx");
        Console.WriteLine("TestResult file : " + testRunTRXFileName);
}

Deepak.Singhalによる回答として提案[MSFT]Microsoftの従業員2010年2月10日水曜日午後1時32分Flying_Tigerによる回答としてマーク2010年2月10日水曜日午後1時52分

于 2012-06-06T09:16:42.933 に答える