我在项目中创建了一个监听器类。现在我在网上看到的有两种方法可以将监听器添加到你的类或testng文件中。
请检查文件夹结构。现在,我在我的java类中使用它,但是它给了我错误,如图所示:
@Listeners({Test.tes.Utils.ListenerUse.class})
答案 0 :(得分:1)
从您的屏幕截图中,我了解您的测试类HomeTestCases.java
位于Test.test.MyHomepageTestCases
src/test/java
个包中
您正在尝试引用位于ListenerToUse.java
中的Test.tes.Utils
个包中的侦听器src/main/java
。
使用@Listeners(Test.tes.MyHomepageTestCases.MyHomepageTestCases.ListenerToUse.class)
时
在这里,你基本上告诉Java在ListenerToUse
内寻找监听器类Test.tes.MyHomepageTestCases.MyHomepageTestCases
(作为嵌套类),但事实并非如此,因为ListenerToUse
不是嵌入式类在MyHomepageTestCases.java
内。
要解决此问题,请执行以下操作:
@Listeners(Test.tes.MyHomepageTestCases.MyHomepageTestCases.ListenerToUse.class)
@Listeners(Test.tes.Utils.ListenerToUse.class)
答案 1 :(得分:0)
我认为问题在于您将监听器的包以及要添加它的类的包混合在一起。
您现在的代码:
@Listeners(Test.tes.MyHomePageTestCases.MyHomePageTestCases.ListenerUse.class)
正确的套餐:
@Listeners(Test.tes.Utils.ListenerUse.class)
但是,您已经命名了您的软件包" Test",这是(除了破坏Java命名约定 - > https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html)与TestNG Test类冲突。在你的截图上,我可以看到"测试"灰了。如果您将鼠标悬停在它上面,您可能会看到Eclipse已将其解析为" org.testng.annotations.Test"。所以你有两个选择:
展开HomeTestCases类的导入部分;手动添加:
import Test.tes.Utils.ListenerUse;
并删除以下内容:
import org.testng.annotations.Test;