当尝试通过ANT运行时,Selenium webdriver将抛出异常 [英] Selenium webdriver throws exception when trying to run via ANT
问题描述
我使用selenium通过Eclipse运行我的UI自动化测试用例,没有任何问题。浏览器被启动,测试用例被执行,当我在Eclipse中执行结果时会更新结果。而当我试图通过ANT运行它,它开始给我例外,
I am running my UI automation test cases using selenium via Eclipse, it goes through fine with no problem. Browsers are launched, test cases are executed, results are updated when I do it in Eclipse. Whereas, when I tried to run it via ANT, it started giving me exception,
java.lang.NoSuchMethodError:com.google.common。收集.Multimaps.transformValues(Lcom / google / common / collect / ListMultimap; Lcom / google / common / base / Function;)Lcom / google / common / collect / ListMultimap;
查看我项目的附加结构,
See the attached structure of my project,
我的ANT文件(build.xml)供参考,
My ANT file(build.xml) for reference,
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project name="uiAutomation" default="all" basedir=".">
<property name="example.dir" value="."/>
<property name="test.output" value="${example.dir}/build/test-output"/>
<property name="test.report" value="${example.dir}/build/test-report"/>
<property name="lib.dir" value="${example.dir}/lib/dependentJars/"/>
<target name="all" depends="prepare,compile,run" />
<!-- ==================================================================== -->
<!-- Compile Test Code -->
<!-- ==================================================================== -->
<path id="compile.cp">
<fileset dir="${lib.dir}" includes="*.jar" />
<fileset dir="${example.dir}/src/" includes="log4j.properties"/>
</path>
<target name="prepare">
<mkdir dir="${example.dir}/build/classes" />
<mkdir dir="${test.output}" />
<mkdir dir="${test.report}" />
</target>
<target name="compile" description="compile the test code" depends="prepare">
<echo message=" -- testng-compile-examples --" />
<javac includeantruntime="false" debug="true" fork="true" source="1.6" classpathref="compile.cp" srcdir="${example.dir}/src" destdir="${example.dir}/build/classes" />
</target>
<!-- ==================================================================== -->
<!-- Run Tests -->
<!-- ==================================================================== -->
<path id="run.cp">
<path refid="compile.cp" />
<pathelement location="${example.dir}" />
<pathelement location="${example.dir}/build/classes" />
</path>
<target name="run" depends="compile" description="Run examples using testng task with just -testclass and no xml">
<taskdef classpathref="run.cp" name="testng" classname="org.testng.TestNGAntTask" />
<echo>Starting tests...</echo>
<testng classpathref="run.cp" outputdir="${test.output}">
<!-- <classfileset dir="${example.dir}/build/classes/test" /> -->
<xmlfileset file="${example.dir}/src/testng.xml" />
<sysproperty key="org.uncommons.reportng.title" value="Fault Management Functional End to End Test" />
</testng>
<echo>Some of these tests should have failed, see the file test.out for the details</echo>
</target>
</project>
推荐答案
惊喜:Eclipse,即使有重复的jar,并且能够运行测试脚本。但是,ANT无法做到这一点。所以我删除了com.google.common的jar,这让我从命令行运行测试脚本。
The surprise: Eclipse, understood automatically even if there are duplicate jars and was able to run the test scripts. However, ANT could not do that. So, I removed the jar com.google.common, which made me to run the test scripts from command line.
经验教训:没有重复的.jar文件。
Lesson learnt: Do not have duplicate .jar files.
这篇关于当尝试通过ANT运行时,Selenium webdriver将抛出异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!