温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ExtentReports使用过程中遇到的MongoDB坑是怎样的

发布时间:2021-09-29 11:41:05 来源:亿速云 阅读:110 作者:柒染 栏目:大数据

ExtentReports使用过程中遇到的MongoDB坑是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

由于ExtentReports生成的报告比较高大上,于是在自动化项目中使用ExtentReports,遇到问题和解决过程如下

首先说明,我的自动化工程是springBoot+testNG

引入ExtentReports之后,跑自动化的时候总是报错MongoDB连接错误:

com.mongodb.MongoSocketOpenException: Exception opening socket
但是我的项目没有用到MongoDB,所以我先用mvn dependency:tree查看了一下依赖树

发现确实是extentreports引入的

ExtentReports使用过程中遇到的MongoDB坑是怎样的

仔细看日志,springBoot启动后会正常启动MongoDB

然后走了一个弯路,以为是配置问题,尝试修改MongoDB的配置能能否正常连接,发现此路不通

看了下ExtentReports中只有ExtentXReporter才会用到MongoDB,所以理论上我是不需要连MongoDB也可以的

所以换个思路:不让springBoot启动MongoDB就可以了

查询方案,测试类加上以下注解是可以的:

@EnableAutoConfiguration(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})

但是这样做不太优雅,后续每个测试类都要加这个注解,很麻烦;我尝试把注解放到测试类继承的自己写的testng父类(该父类继承了AbstractTestNGSpringContextTests),发现行不通

想到引入ExtentReports之前springBoot启动是不会启动MongoDB,那我直接把MongoDB依赖去掉就可以啊

        <dependency>
            <groupId>com.aventstack</groupId>
            <artifactId>extentreports</artifactId>
            <version>3.1.5</version>
            <exclusions>
                <exclusion>
                    <groupId>org.mongodb</groupId>
                    <artifactId>mongodb-driver</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>

然后再次运行,发现报错没有找到ObjectId这个类,猜测是mongodb-driver引入的包里的类,还原查了一下确实是mongdb-bson里的

最后单独引入bson依赖就可以了

        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>bson</artifactId>
            <version>3.8.2</version>
        </dependency>

----------------------

第二次更新,又遇到相似问题,启动报错没有找到合适的数据驱动,同理这次是去掉spring-boot-starter-jdbc依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </exclusion>
    </exclusions>
</dependency>

看完上述内容,你们掌握ExtentReports使用过程中遇到的MongoDB坑是怎样的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI