【问题标题】:"TestNG No tests found. Nothing was run" while executing automated tests using Selenium through TestNG通过 TestNG 使用 Selenium 执行自动化测试时出现“TestNG No tests found. nothing was run”
【发布时间】:2019-06-26 09:54:54
【问题描述】:
我想知道在运行我的自动化项目之前应该安装什么软件。 Selenium web 驱动程序、selenium java、testNG、junit 已安装,但也存在一些问题。
1. Selenium java 文件没有像人们在视频教程中展示的那样包含更多的 JAR 文件。
2.当我以testNG的身份运行我的项目时,eclipse说windows防火墙已经阻止了这个应用程序的一些功能。
【问题讨论】:
标签:
java
selenium
selenium-webdriver
testng
testng-eclipse
【解决方案1】:
此错误消息...
[TestNG] No tests found. Nothing was run
...暗示 TestNG 没有找到任何要执行的@Test。
您的主要问题是虽然您已将 Test 导入为:
import org.testng.annotations.Test;
但是您的代码块本身没有@Test,但包含@BeforeClass。由于没有没有测试,TestNG 没有找到任何要执行的Test。
解决方案
最简单的解决方案是用 @Test 更改 @BeforeTest 注释并执行您测试用例 / 测试套件。
【解决方案2】:
因为您的主要方法已被放在 beforeclass 注释下。
main 方法不带任何注释。如果您向 main 方法提供任何 TestNG 注释,则会引发此错误。
使用 TestNG 时,您无需编写 main 方法。并不是 main 方法和其他带有 @test 注释的测试不会运行,只是 main 方法不带任何注释。只有非主要方法采用 TestNG 注释。
如果你有一个常规的java main 方法和同一个类中的其他@test 方法,程序将编译并成功运行,但main 方法将被忽略并且根本不会运行。只有其他 @test 方法会运行。
【解决方案3】:
首先,注解@BeforeClass 不是“@Test”,它只是作为执行实际“@Test”的线索或指导。将@BeforeClass 替换为@Test,然后
再次将 (public static void main(String[]args) 替换为“public void guru99()”或“public static void guru99()”。
【解决方案4】:
当我的 Groovy TestNG 测试类中的 test(@Test 注释)方法使用 Groovy 中的 def 方法语法声明时,我遇到了这个错误。 TestNG 确实让您可以在 Groovy 中编写测试方法,但如果它们没有通常的 Java 声明语法,它就会抱怨。
不是这个:
@Test
def testDoWork {
...
这样做:
@Test
public void testDoWork {
...
将其重新设置为@Test public void testMethodName() { 语法,你会再次好起来的。
【解决方案5】:
当我们尝试运行TestNG测试用例而不修复项目中的构建路径错误时,也可能出现此错误。(在项目配置后添加了testNG jar..)
因此,使用的任何 TestNG 注释都不会出现编译时错误,但是在尝试运行代码时,您将陷入此错误,因为 Project 将无法构建 TestNG 的属性,直到您摆脱构建路径错误.. ..
分辨率:
1.检查注解是否正确使用。
2.检查项目中是否存在构建路径错误。如果是,则解决构建路径中的问题,然后再试一次。