大家好
授人以鱼不如授人以渔
maven打包为什么会出现这个错误,打包又干了些啥?
一 原因分析
我的test类,总共也没几行代码,居然会出错,我也是醉了
packagecn.fox.mydemo;importcn.fox.mydemo.domain.entity.MyUserEntity;importcn.fox.mydemo.service.impl.MyUserServiceImpl;importcom.baomidou.mybatisplus.core.conditions.query.QueryWrapper;importlombok.extern.slf4j.Slf4j;importorg.junit.jupiter.api.Test;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.boot.test.context.SpringBootTest;importjava.util.List;@Slf4j@SpringBootTestclassMyDemoApplicationTests{@AutowiredprivateMyUserServiceImpl myUserServiceImpl;@Testpublicvoidt2(){MyUserEntity one = myUserServiceImpl.getOne(newQueryWrapper<MyUserEntity>().lambda().eq(MyUserEntity::getName,"白"));System.out.println(one.getName());}@Testpublicvoidt1(){
log.info("info哈哈哈");}}
然后出现了这个问题
There are test failures.
Please refer toD:\fox\project\my-demo\target\surefire-reports for the individual test results.
Please refer todump files (if any exist)[date].dump,[date]-jvmRun[N].dump and [date].dumpstream.
点击test如下
然后就停止编译了
二 maven打包过程
先看一下maven的打包日志,选择项目名字,可以查看最全的日志
1 首先是运行了TESTS
2 然后启动SpringBoot项目,因为我在test文件上面加了@SpringBootTest注解,不然我的serviceImlpl无法注入
3 接着注入mybatis,执行有@test注解的方法
4 代码有个逻辑错误,将空指针异常抛出来,maven编译失败
三 解决办法
1 注释掉@Test、或者整个文件都注释掉
如果知道问题点的话的话可以注test(甚至解决这个问题都行,但我觉得没必要。如果项目很多人合作,test里面有大量的代码,而且都不是必要的代码),代码太多可以注释掉整个文件的代码
2 忽略测试的失败
在pom.xml文件添加下面的代码,maven打包的时候忽略测试的失败(也可以这样做,但不是最优的解决方案)
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><configuration><testFailureIgnore>true</testFailureIgnore></configuration></plugin></plugins></build>
3 打包跳过所有test文件【建议】
idea工具可以选择maven选项功能,选中小闪电,下面的test就会变为灰色,意思是打包的时候跳过test
maven命令为
-DskipTests=true
再次打包就没问题了
版权归原作者 菜鸟fox 所有, 如有侵权,请联系我们删除。