Извлечь параметры из Nunit3 в тестовом приспособлении С#

Я использую аргумент params, представленный в версии Nunit3, для передачи нескольких параметров.

Однако я не могу получить их с помощью тестового приспособления С#. Я искал, но не смог получить правильный результат.

Может ли кто-нибудь дать мне указания о том, как получить эти аргументы param в С#.

Любая помощь будет оценена. Заранее спасибо.


person Niraj    schedule 13.07.2016    source источник
comment
Можете ли вы опубликовать свой код, пожалуйста?   -  person felix-b    schedule 13.07.2016
comment
nunit3-console D:\Codebase\Automation\ReportGenerationAutomation\bin\Debug\Automation.dll --test=Automation.Report --params:Code=XXX --params:Date=2011-05-16 --work=D: \Codebase\Automation\ReportGenerationAutomation\bin\Debug   -  person Niraj    schedule 13.07.2016
comment
Это команда для nunit3. Мне нужно получить параметры Date и Code в C#. Эта команда выполняется успешно, но я застрял в части извлечения, поэтому для этой части код C# недоступен.   -  person Niraj    schedule 13.07.2016


Ответы (1)


Во-первых, убедитесь, что вы используете консоль NUnit 3.4.1 и NUnit Framework 3.4.1.

Ваш параметр командной строки --params:Code=XXX --params:Date=2011-05-16 выглядит правильно. Вы также можете объединить несколько параметров с помощью точки с запятой, --params:Code=XXX;Date=2011-05-16

Чтобы получить доступ к параметрам в ваших модульных тестах, используйте TestContext.Parameters.Get("Code") в своих тестах. Также есть string Get(string key, string default) и T Get(string key, T default), которые делают Convert.ChangeType.

Это еще недостаточно документировано, поэтому см. запрос на включение, реализующий эту функцию. за дополнительной информацией.

Вот пример теста,

[Test]
public void TestCommandLineParameters()
{
    var code = TestContext.Parameters.Get("Code", "<unknown>");
    var date = TestContext.Parameters.Get("Date", DateTime.MinValue);

    TestContext.WriteLine($"Fetched test parameters {code} and {date}");
}

Который я запускаю с помощью командной строки и NUnit 3.4.1,

nunit3-console.exe --params:Code=XXX --params:Date=2011-05-16 .\nunit-v3.dll

В выводе я вижу

=> nunit.v3.TestParamsTest.TestCommandLineParameters
Fetched test parameters XXX and 2011-05-16 12:00:00 AM
person Rob Prouse    schedule 13.07.2016
comment
Привет, Роб... хороший ответ, но у нас есть документы как для части командной строки, так и для части TestContext. Если нам нужно что-то еще, например, статья с практическими рекомендациями, возможно, мы сможем попросить кого-нибудь из пользователей написать ее для нас. У меня нет фактического варианта использования, который привел бы к хорошему описанию. - person Charlie; 13.07.2016