问答 TESTNG 中使用 ReportNG 测试运行时总是报错 java.lang.NoClassDefFoundError: com/google/inject/Injector

· 2017年03月26日 · 最后由 wsf 回复于 2017年03月27日 · 3183 次阅读

maven+testng+ReportNG 项目,pom.xml 中按照各种帖子上说的依赖包都加了,但是一直在报错: java.lang.NoClassDefFoundError: com/google/inject/Injector 大概是依赖包 guice 中找不到 Injector 类,怀疑是版本兼容问题,试过更换 guice 的版本从 2.0 到 4.0,testng 也更换试过多个版本,都仍然还是报这个错误。google 前几页中的各种方法都使用过了,还是一样。。。
pom.xml 配置代码:

<?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">
    <parent>
        <artifactId>mytest</artifactId>
        <groupId>com.defias</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>TestTestNG</artifactId>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.9.10</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.uncommons</groupId>
            <artifactId>reportng</artifactId>
            <version>1.1.4</version>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.testng</groupId>
                    <artifactId>testng</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>15.0</version>
        </dependency>

        <dependency>
            <groupId>com.google.inject</groupId>
            <artifactId>guice</artifactId>
            <version>3.0</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.19.1</version>
                <configuration>
                    <suiteXmlFiles>
                        <file>res/testng.xml</file>
                    </suiteXmlFiles>
                    <properties>
                        <property>
                            <name>usedefaultlisteners</name>
                            <value>false</value>
                        </property>
                        <property>
                            <name>listener</name>
                            <value>org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter</value>
                        </property>
                    </properties>
                    <workingDirectory>target/</workingDirectory>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.surefire</groupId>
                        <artifactId>surefire-testng</artifactId>
                        <version>2.19.1</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
</project>
共收到 5 条回复 时间 点赞

clean clean ?

另外 ExtentReports 应该更漂亮

我用 3.0 没出现过问题诶

testng 6.9.10 、inject 3.0 没问题,你是不是可以考虑那个 jar 有没正常的下载完?我 maven 最近下载依赖有问题。可以试试看。

关闭了讨论 12月26日 13:05
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册