繁体   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