1.Java IDE集成开发工具: IntelliJ IDEA CE 2019
2.软件测试 | Jenkins的源码常用插件
3.Java学习资源
4.IDE开发工具介绍常用IDE开发工具推荐与比较
5.单元测试实践
Java IDE集成开发工具: IntelliJ IDEA CE 2019
IntelliJ IDEA CE 是一款功能强大的 Java 集成开发环境。它将源代码编入索引后,下载提供即时、源码智能的下载代码完成,以及快速的源码代码分析,确保编码效率与代码质量。下载智能问卷源码IDE 强大的源码重构工具为开发者带来便捷的代码维护体验。
IntelliJ IDEA CE 内置了丰富且统一的下载版本控制系统界面,支持 Git、源码SVN、下载Mercurial、源码CVS、下载Perforce 和 TFS 等主流版本控制系统,源码帮助开发者高效管理代码版本。下载
构建工具方面,源码IDE 支持 Maven、Gradle、Ant、Gant、SBT、NPM、Webpack、Grunt、Gulp 等多种构建工具。这些工具与 IDE 的无缝集成,使得自动编译、打包、运行测试、部署等操作变得更加简单高效。
在测试方面,IntelliJ IDEA CE 提供了强大的单元测试支持,包括 JUnit、TestNG、Spock、Cucumber、ScalaTest、涨幅统计指标源码spec2 和 Karma 等主流测试框架的测试运行器和覆盖工具。开发者可以轻松执行单元测试,提升代码质量。
IDE 还内置了反编译器,无需借助第三方插件,即可查看没有源代码的库。内置终端功能,让开发者无需离开 IDE 即可执行命令,进行代码调试。
数据库工具方面,IntelliJ IDEA 提供了智能编码辅助功能,支持 SQL 编辑、实时数据库连接、查询执行、数据浏览和导出,以及可视化方案管理。
应用服务器支持方面,IDE 支持 Tomcat、JBoss、WebSphere、WebLogic、Glassfish 等主流应用服务器。开发者可以轻松部署工件到应用服务器,并在 IDE 中直接调试已部署的应用程序。
通过 Docker 工具窗口,开发者可以连接到本地运行的 Docker 机器,管理图像、容器和 Docker Compose 服务。多语言支持是 IntelliJ IDEA 的一大亮点,它不仅支持 Java,还支持 Groovy、Kotlin、Scala、JavaScript、TypeScript 和 SQL 等其他语言。老徐源码解读IDE 提供了顶级框架的一流支持,包括 Spring、Java EE、Grails、Play、Android、GWT、Vaadin、Thymeleaf、React、AngularJS 等,帮助开发者高效完成多语言项目的开发。
IntelliJ IDEA 以其强大的功能、丰富的插件生态系统和多语言支持,成为一款功能全面、易于使用的集成开发环境,适合各类开发者在 Java 和多语言项目开发中使用。
软件测试 | Jenkins的常用插件
Jenkins因其丰富的功能而备受欢迎,这些功能主要来源于其庞大的插件库。插件使得Jenkins能够实现更复杂、更专业的自动化测试流程。 安装插件的过程相对简单。首先,你需要访问插件管理页面,通常路径为“Manage Jenkins” → “Manage Plugins” → “Available”。然后,在搜索框内输入你想要安装的插件名称,查看搜索结果。如果插件存在,只需勾选插件前的复选框,点击“Download now and install after restart”按钮,即可开始下载并安装。 插件管理页面上共有四个选项卡,分别对应“Updates(可更新)”、“Available(可选的永久锁机源码)”、“Installed(已安装)”和“Advanced(高级-配置代理服务或者自定义插件)”。这四个选项卡帮助你管理Jenkins的插件安装和更新。 根据实际需求,建议安装以下几类插件:自动化测试相关插件,如JUnit、TestNG等,用于集成测试自动化。
持续集成/持续部署相关插件,如Git、SVN等,用于源代码版本控制。
性能测试插件,如LoadRunner、JMeter等,用于压力测试和性能监控。
报告和监控插件,如Elasticsearch、Prometheus等,用于实时监控测试结果。
安装插件后,你将能够充分利用Jenkins的强大功能,实现高效、精准的软件测试流程。Java学习资源
Java Commons Java tutorial WebService常用第三方webservice IDEEclipse Eclipse GUI Plugin Eclipse根据java代码生成UML图 Tomcat Hudson Jenkins Atlassian Bamboo TeamCity JUnit DbUnit JMockit TestNG ReportNG SLF4J Log4j Logback Log4E代码评审 guava jga Java Class Dependency Analyzer OW2Forge Rock apache Apache Commons sandbox中的项目无法直接通过maven进行依赖,必须通过svn下载源码,部署到本地maven仓库中。例如对于sandbox中的classscan项目: # 项目地址:commons.apache.org/sand... svn checkout mons/sandbox/classscan classscan cd classscan 当install带有parent的maven项目时,如果没有把parent一并install,其它项目引用时会出现 mvn install--Failed to read artifact descriptor for org.apache.maven.plugins:maven-source-plugin:jar:2.1.2 cd parent (classscan/parent) mvn clean package install -DskipTests cd ../api (classscan/api) mvn clean package install -DskipTests cd ../bcel (classscan/bcel) mvn clean package install -DskipTests 在pom.xml中添加依赖 org.apache.commons.classscan bcel 0.2-SNAPSHOT org.apache.commons.classscan api 0.2-SNAPSHOT Eclipse中Update Project,选择Force Update of Snapshots/Releases Apache HttpComponents Maven and M2Eclipse maven快速下载某个jar包依赖的所有jar 经常碰到这种事情:在一些非maven工程中(由于某种原因这种工程还是手工添加依赖的),需要用到某个新的类库(假设这个类库发布在maven库中),而这个类库又间接依赖很多其他类库,如果依赖路径非常复杂的话,一个个检查手动下载是很麻烦的事。下面给出一个便捷的办法,创建一个新目录里面建一个maven pom文件, 添加需要依赖的类库: 4.0.0 com.dep.download dep-download 1.0-SNAPSHOT com.xx.xxx yy-yyy x.y.z 在这个目录下运行命令,所有跟这个类库相关的直接和间接依赖的jar包都会下载到 ./target/dependency/下 杂项 间接依赖的jar包能否直接使用 如果工程依赖A.jar,并用maven设置好依赖,同时A.jar会依赖B.jar,所以maven在下载A.jar的低价源码分享网站同时会下载B.jar,这时如果项目发现需要使用B.jar中的一些内容,在maven中不必从新设置依赖,可以在工程中直接使用。 把某个本地jar包安装到本地仓库中 mvn install:install-file -DgroupId=“edu.jiangxin” -DartifactId=”gcu” -Dversion=“1.0.0” -Dpackaging=”jar” -Dfile=“D:\CS\J2EE\lib\edu.jiangxin.gcu-1.0.0.jar” 把某个本地jar包部署到某个远程仓库中 mvn deploy:deploy-file -DgroupId=“edu.jiangxin” -DartifactId=”gcu” -Dversion=“1.0.0” -Dpackaging=”jar” -Dfile=“D:\CS\J2EE\lib\edu.jiangxin.gcu-1.0.0.jar” -Durl= yourlocalrepository:... -DrepositoryId=internal bintray bintray.com/ Ant Eclipse Color Themes MyEclipse EclEmma eCobertura JavaNCSS Clover(收费) CAP (code analysis plugin) Visual Performance Analyzer VisualVM JD(Java Decompiler) 注:不支持命令行使用,因而很难批量编译。 jad 注:jad支持命令行方式使用,最新版本为1.5.8g,支持的class版本过低。经常出现问题:The class file version is .0 (only .3, .0 and .0 are supported)。还有一个工具uuDeJava,也是基于jad,所以估计也难以避免这个问题。 jdec JODED J Java Decompiler 注:收费软件,没有试用过 ProGuard FindBugs PMD Metric Jdepend SourceHelper Structure inFusion SourceMonitor Simian CheckStyle CCTE J-Technologies一家(收费) FORTIFY SCA(收费) coverity(收费) klocwork(收费) GProf Dot and Graphviz sikuli exe4j JBoss GlassFish Virgo Jetty cpDetector EZMorph Apache Shiro Struts Spring Hibernate iBATIS/MyBatis appfuse TopLink json neethi XML SAXON jsoup HTML Parser Java port of Mozilla charset detector(jchardet) JMX jsch * yFiles The yFiles diagramming software components are extensive class libraries that enable you to add high-quality diagramming functionality to your own software applications OpenLDAP Protobuf zip4j JFlex JavaCC sablecc Xtext antlr cglib javassist jclasslib ical4j 分词规则引擎 Drools jBPM OpenAS2 Java Native Access (JNA) mpi Java eBus JACOBA Apache POI - the Java API for Microsoft Documents iText(AGPL) aspose MVEL(Drools) OGNL(Struts) SPEL(Spring) JSP EL freemarker Velocity AuroraIDE开发工具介绍常用IDE开发工具推荐与比较
出色的Java工具有助于提高工作效率。Java IDE 工具提供了多种用户独特需求和个人偏好来创建编程环境的方法。今天,给大家分享8个程序员最爱的Java开源IDE工具,
没有用过的小伙伴,快快收藏哦!
BlueJ
BlueJJava环境下的一个内置编辑器、编译器、虚拟机、调试器的多应用软件,是专为教学设计的,很适合在小规模的软件开发中使用。它易于使用和测试的交互式界面,不仅适合用于在学校教授Java编程课程,而且允许程序员调用功能,即对象、方法、参数等,而无需编译源代码。
Eclipse
Eclipse是一款主要用Java编写的免费IDE,允许创建各种跨平台的可用于手机、网络、桌面和企业领域的Java应用程序。
它的主要功能包括Windows生成器、集成Maven、Mylyn、XML编辑器、Git客户端、CVS客户端、PyDev,并且还有一个基本工作区,有可扩展插件系统可满足自定义IDE的需求。通过插件,也可以用C、C ++、JavaScript、Perl、PHP、Prolog、Python、R、Ruby(包括Ruby on Rails框架)等语言开发程序。
IntelliJ IDEA
IntelliJ IDEA CE(社区版)是IntelliJ IDEA的开源版本,为Java、Groovy、Kotlin、Rust和Scala等提供IDE。可用于现有的源重构,代码检查,使用JUnit或TestNG构建测试用例,以及使用Maven或Ant构建代码。IntelliJ IDEA CE的优秀功能有API测试仪,允许通过Swing GUI设计器测试API的功能,很多经验丰富的程序员尤其喜欢IntelliJ IDEA CE。
Netbeans IDE
NetBeans IDE是一个集成的Java开发环境,它能为独立的、移动的和web架构设计模块化的应用程序,并支持web技术。NetBeans IDE能建立关于如何有效管理项目、工具和数据的多个视图,并可以在新开发人员加入项目时进行软件开发协作。
VSCodium
VSCodium是一个免费的源代码编辑器,它在Windows、macOS、Linux上皆可用。它是一个基于Visual Studio代码的开源替代品,支持多种编程语言,如Java、c++、c#、PHP、Go、Python、.net等。
jEdit
jEdit是一个具有广泛插件架构的文本编辑器,具备编辑搜索,查找,替换和源代码编辑等功能,支持超过两百种语言,包括Unicode。
jGRASP
jGRASP是运行在Java平台上的IDE,提供可视化自动生成,能在运行时产生静态可视化的源代码结构和直观化的数据结构,且jGRASP能产生支持Java、C、C ++、Objective-C、Python、Ada和VHDL的控制结构图;支持Java和Ada的复杂文件图表;支持Java的UML类图;还有动态对象查看器和结合了集成调试器和Java工作台的画布查看器。
JSource
JSource是免费的Java IDE,尤其在创建跨平台的Java应用程序中非常有用。JSource能运行、编译、编辑和创建Java文件,主要特点是支持多种语言的语法高亮显示和Java Swing组件。
程序员最爱的8个Java开源IDE工具你收藏了吗?如果还有什么想要了解的,或者你有其他更好用的IDE,欢迎大家在下方留言探讨!
单元测试实践
非常有意思的一段话:
我们用得最多的基本单元测试框架是junit和testng,下面对这两个工具做个对比。
通过上面的对比可以看出,TestNG作为Java项目的单元测试框架是更有优势的,TestNG在参数化测试、依赖测试、套件测试、分组测试、并发测试等方面都比Junit4强,同时,TestNG涵盖了JUnit4的全部功能。
所以下面的案例说明都是基于TestNG来写的。
为方便对后面内容的理解,先写一个单元测试:
这是一个验证rsa加解密功能的单元测试。
TestMain是抽象出来,用于启动spring容器以及支持testng用例自动注入bean,因为启动spring容器总是很耗时的,如果我们的测试用例用不到依赖的spring bean,最好不雅启动spring容器,TestMain源码:
这就是TestMain最好放在和工程Application类所在包相同路径下的原因,比如我的示例中TestMain和BoardServerApplication都在相同包路径下:com.allawn.athletic.board.server。
检查TestNG插件是否存在
插件搜索“Coverage”
在我们的pom文件下加如下plugin配置:
idea插件自带,带搜索插件“PIT mutation testing”,但不建议用,很难调通!
本地开发环境
IDE自动创建单元测试的方法(也可手动完成):
创建后的单元测试在Maven工程的test目录下生成测试类:
注意:如果之前没有test目录,则需要手动创建一下:
然后再把目录设置为test目录。设置方法:file -> Project Structure -> Modules
运行单元测试
创建单元测试
Maven执行的相关命令:
如果单元测试不通过,出现如下:
两种方式皆可运行。
运行不通过则则会有提示
要通过maven运行单元测试,要保证pom配置没有跳过单元测试,检查设置如下:
IDEA可以直接生成覆盖率报告,导出来的覆盖率报告长这样:
点击index.html即可看报告内容:
变异测试,英文Mutation Testing,是使用变异器 (切换数学运算符,更改返回类型,删除调用等)将代码修改为不同的变异(基于变异器创建新代码),并检查单元测试是否失败。好的单元测试应该使所有突变都失败(杀死)。
主要列出testng的测试方法,junit的测试方法请另行百度。
异常测试是指在单元测试中应该要抛出什么异常是合理的,可以检测我们方法中指定跑出的异常,类似这种:
如果我们有时候不想测试某些方法的单元测试,那么我们可以指定这些具体的单元测试跳过不执行,testng和junit4都支持忽略测试,testng通过@Test(enabled=false)跳过。
指定某个单元测试方法最长执行时间,如果超时了就算失败,testng中的timeout单位是毫秒。
套件测试是指把多个单元测试组合成一个模块,然后一起运行,在套件定义中还可以通过定义组,针对相同组名的单元测试统一运行。
为方便我们模拟单元测试的传参,testng提供了@DataProvider注解,我们可以在单元测试内设置多种参数值,单元测试会依次把入参都跑一遍。被@DataProvider修饰的方法,返回值是数组形式。
依赖测试是指测试的方法是有依赖的,在执行的测试之前需要执行的另一测试。如果依赖的测试出现错误,所有的子测试都被忽略,且不会被标记为失败。
TestNG支持通过多个线程并发调用一个测试接口来实现性能测试,invocationCount表示方法调用的次数,threadPoolSize表示并发线程数量,timeOut即是每次调用最大耗时时间。
通过多线程并行调用多个测试方法,在我们套件/组测试的时候,如果使用并行测试,可以大大减少测试运行时间。
Mock的使用场景:
Mockito有比较简洁的API,简单易学,可读性强。从Mockito2开始,Mockito支持了很多新特性以及新注解(所以依赖mockito2.x以上版本的需要java8及以上jdk方可),使用很便捷,spring-boot-starter-test包默认内置mockito,鉴于维护性和语言新特性的支持,个人建议使用Mockito作为单元测试的mock工具。
在有需要的地方进行mock,否则走真实方法调用。
除了采用静态方法spy以外,还可以通过采用注解的方式:
结果示例:
除了@Spy注解需要如此设置,@Mock、@Captor、@InjectMocks等注解也需要。
对整个class进行mock
结果:
Junit5使用手册: junit.org/junit5/docs/c...
在Junit5中要使用Mockito,需要单独引入mockito-junit-jupiter依赖包,通过在单元测试类上加
@ExtendWith(MockitoExtension.class)
实现构建一个mock运行容器。
在有需要的地方进行mock,否则走真实方法调用。
除了采用静态方法spy以外,还可以通过采用注解的方式:
结果示例:
结果:
2024-12-22 13:27
2024-12-22 12:59
2024-12-22 12:23
2024-12-22 11:58
2024-12-22 11:06
2024-12-22 11:01