2016-04-20 7 views
0

私は今かなり長い時間苦労しています。背景:私は、Seleniumを使用して私の自動テストフレームワークを作成しました。 1つのプロジェクトは純粋なNUnitテストであり、2つ目はテストのためのすべての作業です。今、テストプロジェクトでは、テストを実行するすべての環境にディレクトリを保存します。これまでのところ、私のテストの多くは読み込み専用であり、想定された環境でテストが実行されなかった場合にはあまり気にしませんでした。これは私がいくつかの「書き込み」テストを始めたときに変更されました。環境に応じてNUnitテストを実行しないようにしましょう。

この「書き込み」テストが他の環境で実行され、次にlocalhostで実行されないようにする必要があります。これまでは、メソッド属性を使用して実行時にテストメソッド名を取得しようとしましたが、それはうまくいきましたが、これはあまり効率的ではありません。あなたは私に良い解決策を教えてもらえますか?ありがとう!

答えて

0

NUnitはcategory属性を持っています。 カテゴリごとにテストをグループ化し、必要なカテゴリのみを実行できます。

+0

私は以前この属性を調べていたと思いますが、このグループはカテゴリにテストされていますが、まだQA環境がこのテストを実行することを指すURLをapp.configに変更するのを忘れてしまっています。しかし、私は間違っているかもしれません... – Jakubee

+0

@ Jakubeeあなたはどの環境でも別々のテスト構成を設定しており、各構成には選択したテストグループが含まれています。このグループのテストが実行されなかったため、app.configを変更しないと何も起きません。 – BWA

2

特定のカテゴリ名で除外するテストにタグを付け、その名前でタグ付けされている場合や、プロダクションなどの特定の環境にある場合、テストの実行を停止するSetUp関数を定義します。 SetUp関数をBaseClassに配置し、すべてのテストフィクスチャに継承します。 SetUp関数はすべてのテストの前に実行され、必要に応じて実行されないようにします。

このような何か:

public class BaseSetup 
{ 
     protected const string CategoryToExclude = "Write"; 

     [SetUp] 
     public void Init() 
     { 
      string env = ConfigurationManager.GetEnvironment(); 
      if (env == Constants.Environments.PROD && (TestContext.CurrentContext.Test.Properties["Categories"].Contains(CategoryToExclude))) 
      { 
       Assert.Inconclusive(String.Format("Cannot run this test on environment: {0}", env)); 
      } 
     } 
    } 

    [TestFixture] 
    public class UnitTests : BaseSetup 
    { 
     [Test] 
     [Category(CategoryToExclude)] 
     public void TestMethod1() 
     { 
      Console.WriteLine("TestMethod1"); 
     } 

     [Test] 
     public void TestMethod2() 
     { 
      Console.WriteLine("TestMethod2"); 
     } 
    } 

は、この情報がお役に立てば幸い!

+0

答えはほぼ同じです。私はこれがより詳細で正解であるので、投票するつもりです。ありがとう!! – Jakubee

+0

私の最初のupvote @ Jakubeeありがとう! TestContext.CurrentContext.Test.Properties ["Categories"]はまだNUnitのすべてのバージョンで動作していないと言いたいのですが、それはまだ実験中です。そのカテゴリでテストし、次にTestContext.CurrentContext.Test.Name.Contains(CategoryToExclude)を使用します。 – Xena

関連する問題