使用Eclipse的junit中出现初始化错误

使用Eclipse的junit中出现初始化错误,junit,Junit,将此作为Junit运行会导致初始化错误: import java.io.IOException; //导入java.lang.reflect.Array; 导入java.util.array; 导入java.util.Collection; 导入java.util.concurrent.TimeUnit; 导入org.junit.Assert; 导入org.junit.aspect; 导入org.junit.Before; 导入org.junit.runner.RunWith; 导入org.ju

将此作为Junit运行会导致初始化错误:

import java.io.IOException;
//导入java.lang.reflect.Array;
导入java.util.array;
导入java.util.Collection;
导入java.util.concurrent.TimeUnit;
导入org.junit.Assert;
导入org.junit.aspect;
导入org.junit.Before;
导入org.junit.runner.RunWith;
导入org.junit.runners.Parameterized;
导入org.openqa.selenium.firefox.FirefoxDriver;
导入org.openqa.selenium.support.events.EventFiringWebDriver;
导入org.testng.annotations.AfterClass;
导入org.testng.annotations.BeforeClass;
导入org.testng.annotations.Parameters;
导入org.testng.annotations.Test;
导入测试.BaseTest;
导入Utils.TestUtils;
@RunWith(参数化的.class)
公共类LoginTest扩展了BaseTest
{
字符串用户名;
字符串密码;
字符串验证文本;
公共登录测试(字符串用户名、字符串密码、字符串验证文本)
{
this.UserName=用户名;
this.Password=密码;
this.VerifyText=VerifyText;
}
@参数
公共静态集合ReadData()
{
返回Arrays.asList(TestUtils.readTestData(“LoginTest”);
}
@课前
公共静态void Init()
{
System.out.println(“类调用之前…”);
}
@下课
公共静态浏览器()
{
System.out.println(“名为….的Afetr类”);
}
@以前
public void openSite()引发IOException
{
初始化();
dr=新的FirefoxDriver();
驱动程序=新的EventFiringWebDriver(dr);
System.out.println(“调用前…”);
驱动程序。获取(“http://www.rediff.com");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
}
@试验
public void LoginTest()引发IOException、InterruptedException
{
System.out.println(“调用的测试”);
//跳过测试用例
if(TestUtils.isskiped(“LoginTest”))
{
假设。假设为真(假);
}
字符串结果=TestUtils.Login(用户名、密码、验证文本);
if(result.contains(“Failed”))
{
//截屏
字符串filename=“LoginFailed\”+用户名;
takeScreenshot(文件名);
//错误
Assert.assertTrue(结果,false);
}
//注销
TestUtils.Logout();
}
}
堆栈跟踪:

LoginTest (1)
testSuite1.LoginTest
initializationError(testSuite1.LoginTest)
java.lang.Exception: No public static parameters method on class testSuite1.LoginTest
    at org.junit.runners.Parameterized.getParametersMethod(Parameterized.java:309)
    at org.junit.runners.Parameterized.<init>(Parameterized.java:280)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:29)
    at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:21)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
    at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:28)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.<init>(JUnit4TestClassReference.java:24)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:40)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:30)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:445)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
LoginTest(1)
testSuite1.LoginTest
初始化错误(testSuite1.LoginTest)
java.lang.Exception:类testSuite1.LoginTest上没有公共静态参数方法
位于org.junit.runners.Parameterized.getParametersMethod(Parameterized.java:309)
位于org.junit.runners.Parameterized.(Parameterized.java:280)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:513)
位于org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:29)
位于org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:21)
位于org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
位于org.junit.internal.builders.AllDefaultPossibilityBuilder.runnerForClass(AllDefaultPossibilityBuilder.java:26)
位于org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
位于org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26)
位于org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference。(JUnit4TestReference.java:28)
位于org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference。(JUnit4TestClassReference.java:24)
位于org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:40)
位于org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:30)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:445)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

如果使用JUnit,您的导入不正确:

import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
请使用以下选项:

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
错误消息表示JUnit正在寻找一个用
org.JUnit.runners.Parameterized.Parameters
注释的方法,但它找不到任何方法,因为您的方法是用
org.testng.annotations.Parameters注释的。解决方案非常简单。
我得到初始化错误,因为我在eclipse测试类文件中选择了错误的文本。
因此,为了运行测试Java类文件,我选择了
测试方法名
,或者为了运行Java文件中的所有测试用例,我选择了
Java文件名


然后右键单击并运行JUNIT测试。

不确定原因,但JUNIT不喜欢以大写字母开头的测试名称:

@Test
public void LoginTest()throws IOException,InterruptedException{
 ...
}
尝试将其更改为
loginTest()


这对我很有用。

我将J-unit添加到我的项目中,它对我很有用。右键单击项目->单击属性->选择java构建路径->选择库->选择添加库->在这里选择并添加Junit

好吧,这里的问题是Eclipse构建路径的问题。如果没有添加JUnit库,则抛出此错误。 将JUnit添加到项目中。
右键单击项目-->单击属性-->选择Java生成路径-->选择库-->选择添加库-->选择JUnit

运行整个测试套件将产生比运行单个测试更详细的错误消息。