2014-12-04 48 views
0

我有一套硒测试,使用TestNg放在一起,并使用Maven和Surefire在Jenkins上运行。TestNg记者信息在肯定的测试结果输出中重复

我试图把一个测试报告,包括使用TestNG的记者信息的自定义信息,但我遇到了一个问题与神火报告重复使用Reporter.log()不管我输出。

如果我运行使用TestNG的Eclipse插件,我得到记者下输出以下输出(在TestNG的测试输出)的报告:

自定义输出到这里

如果我运行使用万无一失(MVN清洁测试)我得到以下(在神火测试输出):

自定义输出到这里

自定义输出到这里

自定义输出到这里

自定义输出到这里

下面是其创建的输出我的失败覆盖:

public class TestListeners extends TestListenerAdapter{ 

    @Override 
    public void onTestFailure(ITestResult tr) 
    { 
     Reporter.log("Custom output goes here"); 
    } 

} 

测试:

public class ReportTest extends TestBase{ 

    @Test(groups="report") 
    public void reportTest() 
    { 
     driver.navigate().to("https://www.google.com"); 
     driver.findElement(By.id("no-element-here")); 
    } 
} 

而且TestBase(用于设置打开并拆除驱动程序和环境):

@Listeners({TestListeners.class}) 

公共类TestBase {

private Configuration config = new Configuration(); 
protected String base_url; 
public static WebDriver driver; 

@BeforeClass(alwaysRun=true) 
public void setUp() 
{ 
    driver = selectDriver(); 
    driver.manage().timeouts().implicitlyWait(config.timeout, TimeUnit.SECONDS); 
    if(config.maximise) 
    { 
     driver.manage().window().maximize(); 
    } 
    base_url = config.base_url; 
} 

@AfterClass(alwaysRun=true) 
public void tearDown() 
{ 
    driver.quit(); 
} 

另外,POM,以防万一:

<build> 
<plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.2</version> 
     <configuration> 
      <source>1.8</source> 
      <target>1.8</target> 
     </configuration> 
    </plugin> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <version>2.18</version> 
     <configuration> 
     </configuration> 
    </plugin> 
</plugins> 

<dependencies> 
<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>3.8.1</version> 
    <scope>test</scope> 
</dependency> 
<dependency> 
    <groupId>org.testng</groupId> 
    <artifactId>testng</artifactId> 
    <version>6.1.1</version> 
</dependency> 
<dependency> 
    <groupId>org.seleniumhq.selenium</groupId> 
    <artifactId>selenium-java</artifactId> 
    <version>2.44.0</version> 
</dependency> 

我只是想不通为什么它在TestNg中运行时工作正常,但在Surefire运行时随机重复。任何帮助,将不胜感激!提前致谢!

回答

0

我已经研究过这里发生了什么,以防将来发生什么事情发生。

它看起来像每一次出现了一个故障,并覆盖叫,有人称其为存在的每个实例。例如,如果@Listeners标记存在于3个类中,则输出将重复三次。现在只显示一次所有自定义输出

<properties> 
    <property> 
     <name>listener</name> 
     <value>utilities.TestOverride</value> 
    </property> 
</properties> 

我被删除了所有@Listener标记,存在于类,并添加以下到我的pom.xml嵌套在神火插件内解决这一点。

相关问题