gpt4 book ai didi

java - 使用 Maven 在 Eclipse 中以编程方式运行 testNG,无需插件

转载 作者:行者123 更新时间:2023-12-02 04:34:54 25 4
gpt4 key购买 nike

我想在普通的 Maven 快速启动项目中运行 TestNG,而不使用“TestNG eclipse 插件”。

无论我从 http://testng.org/doc/documentation-main.html#running-testng-programmatically 读到什么和其他来源,我想到了使用类:

MessageUtil.java

package com.mytests.testng;

public class MessageUtil {
private String message;

public MessageUtil(String message){
this.message = message;
}

public String printMessage(){
System.out.println(message);
return message;
}
}

TestNGExample.java

package com.mytests.testng;

import org.testng.Assert;
import org.testng.annotations.Test;

public class TestNGExample {
String message = "Hello World";
MessageUtil messageUtil = new MessageUtil(message);

@Test
public void testPrintMessage() {
Assert.assertEquals(message,messageUtil.printMessage());
}
}

App.java

package com.mytests.testng;

import org.testng.TestListenerAdapter;
import org.testng.TestNG;

public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
TestListenerAdapter tla = new TestListenerAdapter();
TestNG testNG = new TestNG();

@SuppressWarnings("rawtypes")
Class[] testClasses = new Class[]{
TestNGExample.class
};

testNG.setTestClasses(testClasses);
testNG.addListener(tla);
testNG.run();
}
}

但在这里我遇到了异常:

异常(exception)框 1

JNI Error

异常(exception)框 2

Java Exception

控制台异常

Exception in thread "main" java.lang.NoClassDefFoundError: org/testng/ITestListener
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.privateGetMethodRecursive(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.testng.ITestListener
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 7 more

即使我没有收到任何编译时错误,我也不明白为什么会出现问题。 TestNG依赖项已成功下载并有助于编写代码。但我猜该类不会在运行时加载。可以做什么?

如果不使用任何 XML 导致错误,我也可以使用它,但不能使用 TestNG 的 eclipse 插件。

P.S.:我是 TestNG 的新手,这是我的第一个程序

最佳答案

发生此问题的原因是在运行时,testng jar 在类路径中不可用。您可以使用 <scope>compile</scope> 解决此问题而不是<scope>test</scope>在你的 testng pom 依赖项中。

关于java - 使用 Maven 在 Eclipse 中以编程方式运行 testNG,无需插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30963666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com