Testng的听众

时间:2017-01-17 11:27:03

标签: selenium testng

我在项目中创建了一个监听器类。现在我在网上看到的有两种方法可以将监听器添加到你的类或testng文件中。

MyProjectFolderStructue

请检查文件夹结构。现在,我在我的java类中使用它,但是它给了我错误,如图所示:

@Listeners({Test.tes.Utils.ListenerUse.class})

2 个答案:

答案 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"。所以你有两个选择:

  1. 正确命名您的包,然后重试
  2. 展开HomeTestCases类的导入部分;手动添加:

    import Test.tes.Utils.ListenerUse;

  3. 并删除以下内容:

    import org.testng.annotations.Test;