Плагин Maven Surefire не выбирает параметры - PullRequest
0 голосов
/ 05 июня 2018

Плагин Maven Surefire не выбирает параметры.Когда я запускаю Regression Suite XML в Eclipse, он работает нормально.Но тот же xml не работает, когда я запускаю тест Maven. По какой-то причине он не подбирает параметры.Я боролся с этим некоторое время.Пожалуйста помоги.Спасибо

RegressionSuite.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name= "RegressionTests">
  <suite-files>
    <!-- suite-file path="CreateUsers.xml"-->
    <suite-file path="ReportFormatting.xml" />
    <suite-file path="SectionsFormating.xml" />
    <suite-file path="ColumnFormatting.xml" />
    <suite-file path="AdvancedFunctions.xml" />
    <suite-file path="AnalysisStyle.xml" />
    <suite-file path="CalculatedFields.xml" />
    <suite-file path="Aggregration.xml" />
    <!-- suite-file path="Admin.xml"/-->
  </suite-files>
</suite>

Вот мой POM

plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>8</source>
<target>8</target>
<fork>true</fork>
<executable>C:\Program Files\Java\jdk1.8.0_91\bin\javac.exe</executable>
</configuration>
</plugin>
 
 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-surefire-plugin</artifactId>
 <version>2.21.0</version>
 <executions>
<execution>
<id>test</id>
<phase>integration-test</phase>
<configuration>
<suiteXmlFiles>
	<suiteXmlFile>
         	src\test\resources\RegressionTests.xml
	</suiteXmlFile>
</suiteXmlFiles>
</configuration>
		<goals>
         <goal>test</goal>
       </goals>
      </execution>
      
      </executions>
     </plugin>


</plugins>
</build>

Вот сообщение об ошибке

enParameter 'userName' is required by @Test on method Date_Aggregration but has not been marked @Optional or defined

    at org.testng.internal.Parameters.createParams(Parameters.java:290)
    at org.testng.internal.Parameters.createParametersForMethod(Parameters.java:359)
    at org.testng.internal.Parameters.createParameters(Parameters.java:620)
    at org.testng.internal.Parameters.handleParameters(Parameters.java:769)
    at org.testng.internal.ParameterHandler.handleParameters(ParameterHandler.java:49)ter code here

Вот мой ReportFormatting.xml

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Regression - Report Formatting" verbose="1" configfailurepolicy="continue">


<listeners>
<listener class-name="y.bi.extentReportListener.ExtentReportListener"/>
</listeners>



	<parameter name="axisA" value="1" />
	<parameter name="axisB" value="2" />
	<parameter name="viewName" value="Ski Team"></parameter>

	<!-- REPORT FIELDS -->
	<!-- this is your report data set -->
	<parameter name="rf1" value="Athlete Country" />
	<parameter name="rf2" value="Agency Country" />
	<parameter name="rf3" value="Invoiced Amount" />
	<parameter name="rf4" value="Athlete Counter" />
	<parameter name="rf5" value="Invoice Estimate" />
	
	<!-- Data Section font type and size fields -->
	<parameter name="fontType" value="Courier"></parameter>
	<parameter name="fontSize" value="16"></parameter>
	
	<!-- Column and Row Header font type and size  -->
	<parameter name="headerFontType" value="Helvetica"></parameter>
	<parameter name="headerFontSize" value="18"></parameter>
	
	<!-- Border Width  -->
	<parameter name="borderWidth" value="Thick"></parameter>
	
	<!-- Title and Description  -->
	<parameter name="displayTitleFontType" value="Roboto"></parameter>
	<parameter name="displayTitleFontSize" value="20"></parameter>
	<parameter name="displayDescFontType" value="Geneva"></parameter>
	<parameter name="displayDescFontSize" value="19"></parameter>
	
	<!-- yellowfin login credentials -->
	<parameter name="URL" value="http://10.10.5.77:8082/" />
	<parameter name="userName" value="admin" />
	<parameter name="passsword" value="test" />
>
	
	<test name="ReportFormatting">
		<classes>
			<class name="y.bi.test.ReportFormatting">
				<methods>

					<include name="ValidateDataSection"></include>
					<include name="ValidateColumnandRowHeadingsandBorder"></include>
					<include name="ValidateTitleandDescription"></include>
					<include name="ValidateHeaderFooterandTableSort"></include>
					<!-- <include name=""></include> -->

				</methods>
			</class>
		</classes>
	</test>
</suite>

1 Ответ

0 голосов
/ 06 июня 2018

Проблема в вашем файле POM.Вы привязали плагин surefire к фазе integration-test, и в surefire-plugin вы настроили его для работы с XML-файлом пакета.

Но по умолчанию супер-pom всех файлов pom также имеет surefire-plugin, который определен для выполнения на фазе test.test фаза наступает раньше integration-test фазы.

Таким образом, Maven в основном собирается запустить surefire-plugin дважды: один раз для test фазы и один раз для integration-test фазы.

Теперьпоскольку test привязка к фазе surefire-plugin выполняется без привязки к нему какого-либо файла набора, я предполагаю, что он обнаружил @Test методы, аннотированные аннотацией @Parameters, для которых значения не передаются (помните, что здесь нет набора)здесь используется файл xml), что приводит к ошибке.

Чтобы устранить проблему, обновите значение фазы для ваших surefire-plugin и

  • Изменение: <phase>integration-test</phase>
  • Кому: <phase>test</phase> (или вы можете удалить саму запись <phase>, что приведет к тому, что Maven вернется к значениям по умолчанию)
...