Java 带有Factory和Dataprovider的TestNG类永远不会工作

Java 带有Factory和Dataprovider的TestNG类永远不会工作,java,testng,Java,Testng,我有一个jar计算器库。我制作了一个简单的类,用Factory和DataProvider测试“sum”函数,就像很多例子一样。但当我运行它时,我看到:没有执行任何测试。如果我删除Factory并将DataProvider写入测试注释,则一切正常 公共类测试{ 计算器计算器=新计算器(); 私人决赛双a; 私人决赛双b; @工厂(dataProvider=“getValues”) 公共总和测试(双值、双B值){ 这个。a=aValue; b=b值; this.calc=新计算器(); } @试验

我有一个jar计算器库。我制作了一个简单的类,用Factory和DataProvider测试“sum”函数,就像很多例子一样。但当我运行它时,我看到:没有执行任何测试。如果我删除Factory并将DataProvider写入测试注释,则一切正常

公共类测试{
计算器计算器=新计算器();
私人决赛双a;
私人决赛双b;
@工厂(dataProvider=“getValues”)
公共总和测试(双值、双B值){
这个。a=aValue;
b=b值;
this.calc=新计算器();
}
@试验
公共void testSum(){
Assert.assertEquals(a+b,计算和(a,b));
}
@数据提供者
公共对象[][]getValues(){
返回新对象[][]{
{10, 5},
{-10, 5},
{11.55, -10.55},
{-5, -6},
{99999.8d,1l},
{9223372036854775807L,9223372036854775807L}
};
}
}

数据提供程序需要是静态的才能使工厂工作。

数据提供程序需要是静态的才能使工厂工作。

您的
SumTest
构造函数的参数不应该接受
长的
参数吗?还是我遗漏了什么?为了精确起见,您能否共享
calc.sum(a,b)
method的签名?它有两个覆盖的double和long求和方法。问题不在于数据。我只尝试了{10,5},但仍然不起作用。但是它确实可以使用@Test annotation中编写的数据提供程序的任何参数
SumTest
构造函数的参数不应该接受
long,long
参数吗?还是我遗漏了什么?为了精确起见,您能否共享
calc.sum(a,b)
method的签名?它有两个覆盖的double和long求和方法。问题不在于数据。我只尝试了{10,5},但仍然不起作用。但它确实可以使用@Test annotation中编写的Dataprovider的任何参数