2017-06-05 6 views
1

nunit3-consoleからtestを実行する際に問題があります。私はTestFixtureコンストラクタにパラメータを渡す必要がありますが、私は特定のTestを呼びたいと思います。 私のフィクスチャでは、2つの異なるコンストラクタと引数なしの1つのメソッドがあります。今、私はこのCDMを呼び出す:nunit3-consoleからTestMethodではなくTestFixtureコンストラクタにパラメータを渡します。

  1. nunit3-コンソール--paramsユーザ名= U1;パスワード= P1 --test namespace.class.Test1 Tests.dll

私は今NUnitの合格しよう、と思います持っているこの2つの私のテストのパラメータが、私は、コンストラクタにそれを渡したい、

  1. [TestFixtureSource(typeof演算(TestFixtureSource)、 "GetParameters")]

--where "class = 'TestFixtureClassName'"句のパラメータがtestfixtureコンストラクタに渡されますが、このフィクスチャ内のすべてのテストが実行されます。コマンドプロンプトで今

例で

namespace TestNamespace 
{ 
[TestFixtureSource("GetTestFixtureSource")] 
public class TestFixture 
{ 
private int _a; 
private int _b; 
TestFixture() 
{ 
_a = 8; 
_b = 10; 
} 
TestFixture(int a, int b) 
{ 
_a = a; 
_b = b; 
} 
[Test] 
public void Test() 
{ 
//test1 body 
} 
[Test] 
public void Test2() 
{ 
//test2 body 
} 
[Test] 
public void Test3() 
{ 
//test3 body 
} 
} 
} 

私はこの行を呼び出す:

  1. nunit3コンソールが= 80 --params; B = 100 --test TestNamespace.TestFixture 。テストTests.dll

この行の結果は、2つの引数を使用してTestメソッドを検索しようとしています。 uは、このようにNUnitのコンソールを呼び出したときしかし:

  1. nunit3-コンソールは= 80を--paramsと、b = 100 --whereクラス= 'TestFixture' Tests.dll

をそれは、適切なコンストラクタを見つけました2つの引数を指定して呼び出しますが、このFixture内のすべてのテストを実行します。 今、私が達成したいのは、単一のテストを実行しますが、TestFixtureの適切なコンストラクタに--paramsを渡します。

私はあなたのためにそれをより明確に提示したいと考えています。

+0

app.configファイルではなくパラメータでこれを行う理由はありますか? – mjwills

+0

私はパラメータなしでVisual Studioからこのテストを実行しますが、TestCompleteの2つの異なるデータベース(それぞれのユーザーにパーソナライズされています)のcmdによって実行されます。 – ozyrys1994

答えて

0

あなたの説明では、何をしているのかを明確にするために、もう少しコードを使用することができます。

しかし、実行パラメータが問題なく渡され、フィクスチャコンストラクタで使用されているかのように聞こえます。私は何かを誤解していますか?

実行されるテストは、まったく別の問題です。クラス名を指定する--where句を使用すると、そのクラスのすべてのテストを実行するようにランナーに指示します。しかし、あなたの記述によると、テスト方法は1つしかないという。テストコードで何をしているのか、何が起こることが期待されているのか、実際に何が起こっているのかを示すことで、問題をより明確にしてください。

わかりましたように私は答え始めましたが、私はこの問題を理解していないことに気がついたので、長いコメントとして考えることができます。あなたが質問を更新した後、私は答えます。

+0

もっと明確にするためにコードを貼り付けました。 – ozyrys1994

関連する問題