Maven如何配置IntegrationTest
集成测试(IntegrationTest)简介
在很多项⽬的实际开发过程中,上线之前是需要做很多测试的,典型的有unit-test,function-test(有些项⽬不⽤),integration-test,E2E-
test等,unit-test是代码粒度的测试,⼀般是伪造⼀些输⼊来测试函数粒度的功能,⽽integration-test往往需要系统部署后之后才能进⾏相应
的测试,是系统级别输⼊的功能测试,所以我们在实际的代码打包过程就不能让integration-test提前执⾏,需要deploy新的代码,重启系统之
后再执⾏integration-test,否则由于没有运⾏着的系统,integration-test是⽆法通过的
Maven⽣存期
Maven本⾝⽀持的命令(Goals)是有顺序的,越后⾯执⾏的命令,会将其前⾯的命令和其本⾝按顺序执⾏⼀遍,具体的顺序如下所⽰:
validate
initialize
generate-sources
process-sources
generate-resources
process-resources
compile
process-class
generate-test-sources
process-test-sources
generate-test-resources
process-test-resources
test-compile
process-test-class
test
prepare-package
package
pre-integration-test
integration-test
post-integration-test
verify
install
从上⾯maven的⽣存期可以看出,install命令是最复杂的goal,它会将所有的goals都执⾏⼀遍,最终⽣成项⽬包,并发布到本地的或者配置
的.m2仓库中,那问题就来了,我们如何使其能够在install的时候不执⾏某些goals呢,⽐如我们的integration-test就是个例⼦。
配置
通过skip标签来指定跳过test的⾏为,默认是⽀持skipITs和skipTests,前者是跳过integration-test,后者是跳过所有的测试(稍微说明下,
跳过测试⽅法有很多种,⽐如maven-failsafe-plugin本⾝也⽀持加⼊skip选项,只不过实现之后每个命令的含义就略微有不同了,⼤家选择⾃⼰
最习惯的就好了).
Maven命令
有了上⾯的配置,我们就可以执⾏相应的runcommands了,具体每个命令的含义如下:
打包
mvnpackage
跳过所有测试(BTW,测试⽂件还是会被编译的)
mvnpackage-DskipTests
推荐的测试⽬录结构
UnitTestClass:src/test/java/**/**
IntegrationTestClass:src/test/java/**/**
TestCasdependentfiles:src/test/resources/*
编译并且只运⾏unittest
mvncleantest
编译并且只运⾏integration-test
mvnfailsafe:integration-test
运⾏unittest和integration-test
mvncleanintegration-test
发布包并且不运⾏任何的测试
mvninstall-DskipTests
发布包并且只运⾏unit-test
mvncleaninstall-DskipITs
发布包并且运⾏ut加it
mvncleaninstall
本文发布于:2022-12-28 12:43:40,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/46697.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |