Всем привет:) Встала необходимость научить мой фреймворк запускать несколько различных suite с набором тестов и управлять этим набором при помощи профилей. Использую связку Maven+TestNg.
Сперва я создал несколько property с путями к моим suite:
<properties>
<suiteWalletXml>src/.../all_wallet_tests.xml</suiteWalletXml>
<suiteCheckoutXml>src/.../all_wallet_external_tests.xml</suiteCheckoutXml>
</properties
Дальше я связал эти два сьюита путем:
<defaultSuiteFile>${suiteWalletXml},${suiteCheckoutXml}</defaultSuiteFile>
И наконец объявил общую property которую будет подхватывать maven:
<suiteFile>${defaultSuiteFile}</suiteFile>
Соответственно в настройках maven-surefire-plugin в конфиге указываю это property:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>${suiteFile}</suiteXmlFile>
</suiteXmlFiles>
...
При запуске тестов, Maven ругается на src/…/all_wallet_external_tests.xml из property ${suiteCheckoutXml}, обзывая его не валидным. Если property определить как:
<defaultSuiteFile>${suiteWalletXml}</defaultSuiteFile>
или же
<defaultSuiteFile>${suiteCheckoutXml}</defaultSuiteFile>
Тесты запустятся, показывая тем самым, что сами *.xml валидны, а ошибка именно в их групировки.
Стек трейс ошибки:
Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.17:test (default-test) on project autotests: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.17:test failed: There was an error in the forked process
[ERROR] org.apache.maven.surefire.testset.TestSetFailedException: Suite file src\main\resources\suites\all_wallet_external_tests.xml is not a valid file
[ERROR] at org.apache.maven.surefire.testng.TestNGXmlTestSuite.locateTestSets(TestNGXmlTestSuite.java:116)
[ERROR] at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:84)
Кто нибудь сталкивался с подобной проблемой? Возможно есть другой путь решения моей задачи?