2015-10-05 5 views
0

Я создал тест testng с использованием selenium webdriver и java. Теперь я не хочу делиться своим кодом с разными пользователями, но я хочу, чтобы мой код запускался разными пользователями, используя jar или war file. Может ли кто-нибудь помочь мне с этим. Можно ли запустить тест без обмена Java-кодом testNG?Запустить тестовый пакет с использованием файла jar или war

+0

Тестовый код не входит в исполняемый пакет, такой как JAR или WAR. – duffymo

+0

Будет ли это полезно: http://www.toolsqa.com/selenium-webdriver/testng-testcase/? –

+0

Duffymo, поэтому я не могу запустить свой тест без кодов? Есть ли какой-то выход, я не хочу делиться своей полной картой. Люк, я знаю тестовый случай testng, но хочу знать, могу ли я запустить свой тест с использованием файла jar или war. –

ответ

0

Я не получил возможность работать с Maven, но это должно быть возможно и с maven

Позвольте мне рассказать вам идею, беря пример с использованием муравей

Предположим, вы работаете тесты с использованием муравей с ниже (изменения образца файла в соответствии с вашими потребностями) build.xml файл

<project name="TestNG Demo" default="clean" basedir="."> 

<!-- ========== Initialize Properties =================================== --> 
    <property environment="env"/> 

    <property name="ws.home" value="${basedir}"/> 
    <property name="ws.jars" value="${ws.home}/Jars"/> 
    <property name="test.dest" value="${ws.home}/build"/> 
    <property name="test.src" value="${ws.home}/src"/> 
    <property name="ng.result" value="test-output"/> 

    <target name="setClassPath" unless="test.classpath"> 
     <path id="classpath_jars"> 
      <fileset dir="${ws.jars}" includes="**/*.jar"/> 
      <pathelement path="${ws.jars}"/> 
     </path> 
     <pathconvert pathsep=":" 
      property="test.classpath" 
      refid="classpath_jars"/> 
    </target> 

    <target name="init" depends="setClassPath"> 
     <tstamp> 
      <format property="start.time" pattern="MM/dd/yyyy hh:mm aa" /> 
     </tstamp> 
     <condition property="ANT" 
      value="${env.ANT_HOME}/bin/ant.bat" 
      else="${env.ANT_HOME}/bin/ant"> 
        <os family="windows" /> 
     </condition> 
     <taskdef name="testng" classpath="${test.classpath}" 
       classname="org.testng.TestNGAntTask" /> 

    </target> 

    <!-- all --> 
    <target name="all"> 
    </target> 

    <!-- clean --> 
    <target name="clean"> 
     <delete dir="${test.dest}"/> 
    </target> 

    <!-- compile --> 
    <target name="compile" depends="init, clean" > 
     <delete includeemptydirs="true" quiet="true"> 
      <fileset dir="${test.dest}" includes="**/*"/> 
     </delete> 
     <echo message="making directory..."/> 
     <mkdir dir="${test.dest}"/> 
     <echo message="classpath------: ${test.classpath}"/> 
     <echo message="compiling..."/> 
     <javac 
      includeantruntime="false" 
      debug="true" 
      destdir="${test.dest}" 
      srcdir="${test.src}" 
      target="1.6" 
      classpath="${test.classpath}" 
     > 
     </javac> 
     </target> 

    <!-- build --> 
    <target name="build" depends="init"> 
    </target> 

    <!-- run --> 
    <target name="run" > 
     <testng classpath="${test.classpath}:${test.dest}" suitename="suite"> 
      <xmlfileset dir="${ws.home}" includes="testng.xml"/> 
     </testng> 
    </target> 

    <target name="usage"> 
     <echo> 
      ant run will execute the test 
     </echo> 
    </target> 

    <path id="test.c"> 
      <fileset dir="${ws.jars}" includes="*.jar"/> 
    </path> 

     <target name="makexsltreports"> 
      <mkdir dir="${ws.home}/XSLT_Reports/output"/> 

      <xslt in="${ng.result}/testng-results.xml" style="src/demo/testng-results.xsl" 
        out="${ws.home}/XSLT_Reports/output/index.html" classpathref="test.c" processor="SaxonLiaison"> 
       <param name="testNgXslt.outputDir" expression="${ws.home}/XSLT_Reports/output/"/> 
       <param name="testNgXslt.showRuntimeTotals" expression="true"/> 
      </xslt> 
     </target> 

    <!-- ****************** targets not used ****************** --> 

</project> 

Теперь, после компиляции тестовых компиляций (используйте комманду target ant для компиляции ваших тестов), вы получите файлы классов в папке сборки внутри папки проекта, и теперь вы можете удалить папку src (ваши java-файлы) и использовать ant run для выполнения тестов (используйте целевой запуск муравьев), чтобы запустить ваши тесты. Если вы планируете дать ему свой клиент, тогда вы можете сделать простой bat (windows) или shellscript (linux) для выполнения команды ant run и при нажатии на нее пройдет тест

Надеется, что это помогает you..Kindly получить обратно, если у вас есть какие-либо вопросы

+0

@ Md.Zishan Paya Вышеупомянутое решение работает для вас .. – Vicky

0

Как @vicky предполагает, смотреть на Maven, так как это позволит вам упаковать ваш проект как с производственной WAR/JAR, а также тесты упакованы в тестовый JAR. В частности, на test-jar JAR type вы можете пометить JARs.

Так добавить это как плагин к pom.xml:

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <version>2.2</version> 

      <executions> 
       <execution> 
        <goals> 
         <goal>test-jar</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

И тогда другие могут вытянуть его как зависимость с помощью:

<dependency> 
<groupId>com.foo</groupId> 
<artifactId>bar</artifactId> 
<version>1.2.3</version> 
<type>test-jar</type> 
<scope>test</scope> 

Немного больше информации здесь : How do I install a test-jar in maven?

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