2017-03-21 9 views
0

現在、Nunitを使用して私のオートメーションフレームワークを構築しています。私はすべてうまく動作しています。最後に、テストしたい自動化されたテストスクリプトをマップすることができます私のテストソフトウェアのケース。NunitでTestcase IDをマップする

私はすべてのテストケースにTestRailを使用しています。

私の理想的な状況は、テストレールに対応するテストケースIDで各テストケースを装飾でき、TestRailでテスト結果を報告するときは、ケースIDを使用できます。現在、私はテスト名/スクリプト名を照合することでこれをやっています。

例 -

[Test] 
[TestCaseId("001")] 
    public void NavigateToSite() 
    { 
     LoginPage login = new LoginPage(Driver); 
     login.NavigateToLogInPage(); 
     login.AssertLoginPageLoaded(); 
    } 

そして、私のティアダウン方式では、それはようなものになるだろう -

[TearDown] 
public static void TestTearDown(IWebDriver Driver) 
    { 
     var testcaseId = TestContext.CurrentContext.TestCaseid; 
     var result = TestContext.CurrentContext.Result.Outcome; 

     //Static method to report to Testrail using API 
     Report.ReportTestResult(testcaseId, result); 
    } 

私はちょうどtestcaseid属性を作ってきましたが、これは私は何であります探している。

[TestCaseId( "001")]

それがすでに存在する場合、私はこれを逃しているか、またはどのように私はおそらくこれを行うためにNUnitのを拡張して行くのですか?

ご協力いただければ幸いです。

ありがとうございました。

答えて

1

NUnitから提供されるPropertyAttributeを使用できます。

例: - :テストそのものにテスト管理コードを混在さに加えて

[Property("TestCaseId", "001")] 
[Test] 
public void NavigateToSite() 
{ 
... 
} 

[TearDown] 
public void TearDown() 
{ 
    var testCaseId = TestContext.CurrentContext.Test.Properties["TestCaseId"]; 
} 

カスタムプロパティの属性を作成することができます長年にわたりNUnit link

+0

ありがとうスロー、それは私が探していたものです。私は決してプロパティの属性に遭遇することはなかった。 – Kpizzle

0

を参照してください、私は人々ないこれを行うことをお勧めします。それは単一の責任の原則に明白な違反であり、テストを維持することが困難です。

さらに、TearDownに表示される結果がの最終ではないことがあるという問題があります。たとえば、テストで[MaxTime]を使用し、指定された時間を超えた場合、正常なテストは失敗に変わります。他にもいくつかの組み込み属性がこのように動作しますが、もちろん、ユーザー作成の属性が常に存在します。 TearDownの目的は、レポートまたはテスト管理システムを作成するための踏み台としてではなく、コードの後に​​クリーンアップすることです。

つまり、NUnitの古いバージョンでは、人々はこれを行う習慣に入っています。これは、NUnit addins(私たちが設計したアプローチ)が書くのがかなり複雑であったことが原因です。 NUNit V2はテスト側では拡張性が大幅に劣っていたため、問題も少なくなりました。 3.0では、このようなテスト管理機能をNUnitエンジンの拡張機能として作成する手段を提供しました。テストコードと混合するのではなく、その機能の使用を検討することをお勧めします。

一般的なアプローチは、Suloの答えで示唆されているように、TearDownコードをTestRailに結果を報告するEventListener拡張で置き換えることです。EventListenerは、TestContextで使用できる限られたフィールドだけでなく、XML形式のすべての結果情報にアクセスできます。あなたはTestRailに行く必要があれば簡単に抽出できます。書き込みTestEngine拡張子の

詳細はこちら見つかった:あなたは私たちが取り組んでいるのVisual Studioアダプタ、下の拡張機能を使用したい場合は、いくつかの未解決の問題ですhttps://github.com/nunit/docs/wiki/Writing-Engine-Extensions

注意を。今すぐ、コンソールランナーを使用して最高の体験を得るでしょう。

+0

詳細返信@Charlieありがとうございます。私はC#(一般的な開発)とオートメーションテストはかなり新しくなっているので、これらのことをどのように実行するかを学んでいます。ボード上にあなたの提案を取り上げて、イベントリスナーを取得しようとします。 – Kpizzle

関連する問題