2012-01-03 4 views
2

Я пытаюсь запустить тесты TestNG в Maven. вот моя конфигурация:Выполнение тестов TestNG в Maven не удается

pom.xml:

 <dependencies> 
      <dependency> 
     <groupId>org.testng</groupId> 
     <artifactId>testng</artifactId> 
     <version>6.3.1</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.11</version> 
      <configuration> 
       <suiteXmlFiles> 
        <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile> 
       </suiteXmlFiles> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

Это конф файл TestNG:

<suite name="Suite1"> 
<test name="Test1"> 
    <groups> 
     <run> 
      <include name="Setup" /> 
      <include name="Material" /> 
     </run> 
    </groups> 

    <packages> 
     <package name="coloright.hibernate.*" /> 
    </packages> 
</test> 

когда я бегу с затмением - нет проблем.

когда я бегу с испытанием МВН - все тест выполняется успешно, но строить не удалось с ошибкой:

suiteXmlFiles сконфигурирован, но нет TestNG зависимость

Пожалуйста, помогите

+0

При запуске в режиме отладки, то безошибочный плагин должен сообщить о местонахождении (в консоли), где его ищет файл testng.xml , Что он говорит? – djangofan

ответ

2

Похоже, вы ударяя this surefire bug, что вопреки статусу looks to be still open.

Ошибка появляется, если surefire не может найти файл, указанный в <suiteXmlFile>. Не могли бы вы просто указать testng.xml, не указав src/test/resources, чтобы узнать, помогает ли это? В файле documentation указано, как должно указываться это местоположение - должно ли оно относиться к базовому каталогу или относительно папки тестовых ресурсов.

+0

Отсутствие пути не помогает. Спасибо за ответ. – rperez

+0

@rperez Как насчет полного пути: '$ {basedir}/src/test/resources/testng.xml' - если это действительно причина ошибки? – Raghuram

+0

Это не вопрос пути, так как файл найден и тесты выполняются. при этом сборка maven не выполняется с указанным выше исключением (хотя все тесты проходят) – rperez

1

Вы можете попробовать это. Не уверен, что если она будет работать для вас, но я делаю это иногда, хотя и кажется, что его избыточность:

<suiteXmlFiles> 
    <suiteXmlFile> 
    ${project.build.testOutputDirectory}/testng.xml 
    </suiteXmlFile> 
</suiteXmlFiles> 
0

Добавить зависимость безошибочного-TestNG к вашему pom.xml:

<dependency> 
<groupId>org.apache.maven.surefire</groupId> 
<artifactId>surefire-testng</artifactId> 
<version>2.16</version> 
</dependency> 
0

Пожалуйста, проверьте ваш выходная папка в пути сборки должна быть похожа на/target/test-classes.

Также проверьте вашу запись POM для этого и обновить соответственно:

<testSourceDirectory>src</testSourceDirectory> 
    <outputDirectory>target/test-classes</outputDirectory> 
     <resources> 
     <resource> 
      <directory>src</directory> 
     </resource> 
    </resources>