我从nunit3-console执行测试时遇到问题。我需要将参数传递给TestFixture构造函数,但我想调用一个特定的Test。 在我的夹具中,我有两个不同的构造函数和一个没有参数的方法。现在我称之为cdm:
我认为,现在nunit尝试将这两个参数传递给我的测试,但是我想把它传递给构造函数,它有
当我使用--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
}
}
}
现在在命令提示符下我打电话给这一行:
这一行的结果是selenium试图用2个参数找到方法Test。但是当你像这样调用nunit-console时:
它找到具有2个参数的合适构造函数并调用它,但在此Fixture中运行所有测试。 现在,我想要实现的是运行单一测试,但将--params传递给TestFixture的合适构造函数。
希望现在我能更清楚地为你呈现它。
答案 0 :(得分:0)
您的描述可以使用更多代码来明确您正在做的事情。
但是,根据您的说法,听起来好像运行参数正在夹具构造函数中传递和使用而没有问题。我误解了什么吗?
哪些测试运行是完全独立的事情。如果使用指定类名的--where
子句,则告诉运行器运行该类中的所有测试。但是你的描述说只有一种测试方法。请通过展示您在测试代码中所做的事情,您希望将发生的事情以及实际发生的事情,使您的问题更清晰。
如你所见......我开始回答,但意识到我不明白这个问题,所以你可以认为这是一个长篇评论。我会在你更新问题后回答。