簡體   English   中英

將參數從nunit3-console傳遞給TestFixture構造函數,而不是傳遞給TestMethod

[英]Pass parameters from nunit3-console to TestFixture constructor, not to TestMethod

我從nunit3-console執行測試時遇到問題。 我需要將參數傳遞給TestFixture構造函數,但我想調用特定的Test。 在我的裝置中,我有兩個不同的構造函數和一個沒有參數的方法。 現在,我將此稱為cdm:

  1. nunit3-console --params username = u1; password = p1 --test namespace.class.Test1 Tests.dll

我認為,現在nunit嘗試將這2個參數傳遞給我的測試,但是我想將其傳遞給構造函數,

  1. [TestFixtureSource(typeof(TestFixtureSource),“ GetParameters”)]

當我使用--where“ class ='TestFixtureClassName'”調用cmd時,子句參數被傳遞到testfixture構造函數中,但是它將在此Fixture中運行所有測試。


在例子中

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-console-參數a = 80; b = 100 --test TestNamespace.TestFixture.Test Tests.dll

這行的結果是硒試圖找到帶有2個參數的Test方法。 但是當你像這樣調用nunit-console時:

  1. nunit3-console-參數a = 80; b = 100-其中class ='TestFixture'Tests.dll

它使用2個參數找到合適的構造函數並調用它,但是在此Fixture中運行所有Tests。 現在,我要實現的是運行單個測試,但是將--params傳遞給TestFixture的合適構造函數。

希望現在我能為您更清楚地介紹它。

您的描述可能會使用更多的代碼來明確您在做什么。

但是,從您所說的來看,聽起來好像正在傳遞運行參數並將其在Fixture構造函數中使用沒有問題。 我誤會了嗎?

運行哪些測試是完全獨立的問題。 如果使用--where子句指定類名,那么您將告訴運行程序運行該類中的所有測試。 但是您的描述說只有一種測試方法。 請通過顯示測試代碼中的操作,希望發生的事情以及實際發生的事情來在描述中更清楚地說明問題。

如您所見...我開始回答,但意識到我不理解問題,因此您可以將其視為冗長的評論。 更新問題后,我會回答。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM