2016-07-04 1 views
0

nunit3コンソールを使用して異なるTestFixtureパラメータでテストを実行できるかどうか知りませんか?私は次のコードを持っています:NUnit3コンソールを使用して異なるTestFixtureパラメータでテストを実行

[TestFixture(Browser.Firefox)] 
    [TestFixture(Browser.Chrome)] 
    public class Tests : BaseTestCase 

そして私はBrowser.Chromeの設定でのみテストを実行したいと思います。 TestFixtureパラメータ= Browser.Chromeを持つ特定のDLLからすべてのテストを実行できますか?

提供された情報をお寄せいただきありがとうございます。

答えて

0

ありがとうございました!私はあなたの提案する方法を試みたが、成功しなかった。テストクラスのプロパティを設定すると、「ブラウザ」値ランタイムを取得できません。 「ブラウザ」には、テストに設定されているすべてのプロパティが含まれていますが、テストが現在実行されているプロパティではありません。 TestFixture "Browser"が "Chrome"に設定されているアセンブリからすべてのテストクラスを見つけるためのメソッドがあります。クラス名が発見された後、彼らはtxtファイルに追加され、最終的にはファイルは次のようになります。私は、このような持っている場合は

TestClass1(クローム)
TestClass2(クローム)
TestClass3(クローム)

をファイルでは、次のコマンドでテストを実行できます: nunit3-console "TestsDllPath" --testlist = "TextFilePath"

この方法の大きな欠点は、テストリストファイルを作成する方法が毎回実行されることですテストクラスが追加されます。あなたの質問へ

+0

問題は、属性がタイプに適用され、 NUnitによって作成された個々のインスタンス。 .NETはNUnitがこれらの属性をどのように使用するかについては何も知らず、単にそれを実行します。 – Charlie

+0

間違った方向を指していることを謝ることは絶対にありませんでした! – Chris

0

2部:

  1. それはあなたが記述正確な方法でフィクスチャを作成することが可能です。試しましたか? enumの値はフィクスチャコンストラクタに渡されますが、もちろんそのような列挙型を取得する必要があります。私はこれを試していないので、intとして設定する必要があるかもしれませんが、それは簡単な変更です。

  2. NUnitがフィクスチャで表されるテストの名前を最初に見つけ出すだけで、実行するフィクスチャを1つだけ選択するだけで十分です。 "Tests(Chrome)"のようなものでしょうが、--exploreを使うか、テストを実行してXML出力を調べるかのどちらかをチェックしてください。名前を知ったら、--whereオプションを使って実行してください。このようなオプションを指定したテストは、正規表現でそれらのテストを選択する場合に使用します。

    --where "test =〜/(Chrome)/" "BrowserIsChrome"のように自分で定義したいくつかのconst文字列で置き換えることができます。コンストラクタの列挙型に変換することができます - 文字列を--whereオプションでテストできるように一意にしてください。

関連する問題