2016-03-17 2 views
0

Я пытаюсь построить свой тест в jenkins с testng. Так что я настроен testng.xml файл, который можно запускать мои тестыJenkins не может проверить параметры testng

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > 
<suite name="TestRun"> 
    <test name="TestRunFireFox"> 
     <parameter name="browser" value="firefox"/> 
     <classes> 
      <class name="Data.Tests.TestRun" /> 
     </classes> 
    </test> 
</suite> 

Если я просто запустить его местный он получит браузер Firefox без каких-либо проблем. Но если я пытаюсь построить его бросили Дженкинс это даст моей следующей ошибке

Exception org.testng.TestNGException 

Message: Parameter 'browser' is required by @Configuration on method startup but has not been marked @Optional or defined 
Stacktrace: 




at org.testng.internal.Parameters.createParameters(Parameters.java:165) 
at org.testng.internal.Parameters.createParameters(Parameters.java:372) 
at org.testng.internal.Parameters.createConfigurationParameters(Parameters.java:90) 
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:199) 
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:140) 
at org.testng.TestRunner.beforeRun(TestRunner.java:645) 
at org.testng.TestRunner.run(TestRunner.java:613) 
at org.testng.SuiteRunner.runTest(SuiteRunner.java:357) 
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:352) 
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:310) 
at org.testng.SuiteRunner.run(SuiteRunner.java:259) 
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1199) 
at org.testng.TestNG.runSuitesLocally(TestNG.java:1124) 
at org.testng.TestNG.run(TestNG.java:1032) 
at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:70) 
at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:158) 
at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:98) 
at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:111) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164) 
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110) 
at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175) 
at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107) 
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68) 

Я думаю, что это что-то делать со своими параметрами, но я не могу видеть, что это такое. Это также мой файл П Я думаю, что это правильно configureted

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>intix</groupId> 
    <artifactId>automation</artifactId> 
    <version>1.1-SNAPSHOT</version> 


    <properties> 
     <testng.version>6.9.4</testng.version> 
     <selenium.version>2.46.0</selenium.version> 
    </properties> 

    <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>${testng.version}</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-java</artifactId> 
      <version>2.52.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.uncommons</groupId> 
      <artifactId>reportng</artifactId> 
      <version>1.1.4</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.velocity</groupId> 
      <artifactId>velocity</artifactId> 
      <version>1.7</version> 
     </dependency> 
     <dependency> 
      <groupId>com.google.inject</groupId> 
      <artifactId>guice</artifactId> 
      <version>4.0</version> 
     </dependency> 
    </dependencies> 

    <build> 
    <defaultGoal>integration-test</defaultGoal> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>2.3.2</version> 
     <configuration> 
      <source>1.8</source> 
      <target>1.8</target> 
     </configuration> 
     </plugin> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-failsafe-plugin</artifactId> 
     <version>2.19.1</version> 
     <configuration> 
      <suiteXmlFiles> 
       <suiteXmlFile>TestRun.xml</suiteXmlFile> 
      </suiteXmlFiles> 
     </configuration> 
     <executions> 
      <execution> 
      <goals> 
       <goal>integration-test</goal> 
       <goal>verify</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 

</project> 

ответ

0

Проблема была в том, что если вы запускаете класс без xml-файла testng, у него возникла проблема с браузером. Так, чтобы это заработало, вы должны использовать

public void method(@Optional("firefox")){} 

Делая это ваш параметр всегда будет заполнен, даже если запустить метод без файла TestNG XML.

0

Вы упомянули

@Parameters ({"browser"}) 

на тестовый файл Java? где вы принимаете параметр браузера для своего теста?

+0

У меня есть абстрактный класс, который каждый тест расширяет, где над классом у меня есть «@Parameters (« browser ») – stevedc

Смежные вопросы