2017-02-23 40 views
0

我想通过maven执行写在Robotframework上的测试套件,因为我想捕获单元和集成测试阶段中涵盖的整体代码,因此我使用jacoco插入。在执行机器人测试时Maven编译失败,需要的库文件

一切看起来不错,它开始执行机器人测试,但无法导入一些测试的库,例如SSHLibraryrequestsjsonschema

我才知道,我将不得不在classpath中添加罐这样的依赖关系(在下面的日志中见com.trilead.ssh2SSHLibrary),并尝试过,但没有运气。

--- robotframework-maven-plugin:1.4.7:acceptance-test (default) @ rdx --- 
Executing Robot with command: 
[/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java, -javaagent:/home/asr/.m2/repository/org/jacoco/org.jacoco.agent/0.7.5.201505241946/org.jacoco.agent-0.7.5.201505241946-runtime.jar=destfile=/home/asr/workspace/RDX/target/coverage-reports/jacoco-it.exec, org.robotframework.RobotFramework, -d, /home/asr/workspace/RDX/target/robotframework-reports, -t, mycli_help_usage, -V, /home/asr/robot/tf2jan/etc/environments/mycli_env.py, -P, /home/asr/workspace/RDX/src/test/resources/robotframework/libraries, -x, TEST-mycli.xml, --xunitskipnoncritical, /home/asr/robot/tf2jan/Tests/CLI/mycli] 
============================================================================== 
mycli                   
============================================================================== 
[ ERROR ] Error in file '/home/asr/robot/tf2jan/Tests/CLI/mycli/mycli_resources.txt': Importing test library 'SSHLibrary' failed: ImportError: No module named SSHLibrary 
Traceback (most recent call last): 
    None 
PYTHONPATH: 
    /home/asr/.m2/repository/org/robotframework/robotframework/3.0.2/Lib 
    /home/asr/.m2/repository/org/robotframework/robotframework/3.0.2/robotframework-3.0.2.jar/Lib 
    __classpath__ 
    __pyclasspath__/ 
CLASSPATH: 
    /home/asr/.m2/repository/org/robotframework/robotframework/3.0.2/robotframework-3.0.2.jar 
    /home/asr/workspace/RDX/target/test-classes 
    /home/asr/workspace/RDX/target/classes 
    /home/asr/.m2/repository/com/trilead/trilead-ssh2/build213-svnkit-1.3-patch/trilead-ssh2-build213-svnkit-1.3-patch.jar 
    /home/asr/.m2/repository/junit/junit/4.11/junit-4.11.jar 
    /home/asr/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar 
    /home/asr/.m2/repository/pl/pragmatists/JUnitParams/1.0.4/JUnitParams-1.0.4.jar 
/home/asr/.m2/repository/org/jacoco/org.jacoco.agent/0.7.5.201505241946/org.jacoco.agent-0.7.5.201505241946-runtime.jar 

回答

0

使用extraPathDirectory标签见下文将在路径所需的Python库解决了这个问题。

<plugin> 
              <groupId>org.robotframework</groupId> 
              <artifactId>robotframework-maven-plugin</artifactId> 
              <version>1.4.7</version> 
              <executions> 
                <execution> 
                  <goals> 
                    <goal>acceptance-test</goal> 
                    <goal>verify</goal> 
                  </goals> 
                  <configuration> 
                    <skip>${skipRobotTests}</skip> 
                    <testCasesDirectory>/home/asr/robot/tf2jan/Tests/CLI/dtcli</testCasesDirectory> 
                    <variableFiles>/home/asr/robot/tf2jan/etc/environments/dtcli_env.py</variableFiles> 
                    <outputDirectory>${project.basedir}/target/robotframework-reports/</outputDirectory> 
                    <tests>dtcli_help_usage</tests> 
                    <extraPathDirectories> 
                     <extraPathDirectory>/usr/lib/python2.7/dist-packages</extraPathDirectory> 
                      <extraPathDirectory>/home/asr/Downloads/python-jsonpath-rw</extraPathDirectory> 
                      <extraPathDirectory>/home/asr/Downloads/ply-3.10</extraPathDirectory> 
                      <extraPathDirectory>/home/asr/Downloads/jsonselect-0.2.3</extraPathDirectory> 
                    </extraPathDirectories> 
                    <externalRunner> 
                      <excludeDependencies>false</excludeDependencies> 
                      <jvmArgs> 
                        <jvmArg>${surefireArgLine}</jvmArg> 
                      </jvmArgs> 
                    </externalRunner> 
                  </configuration> 
                </execution> 
              </executions> 
            </plugin>