我希望提供任何新的基于java的项目,将基本/通用smoke testing
作为github-actions或ansible上的CICD管道的一部分。
与其让开发人员为他们的应用程序编写烟雾测试用例,我希望为他们提供由工具或插件自动生成的默认测试用例。
我记得的一个插件是diffblue
它也有github CICD集成示例步骤。
我在使用它的CLI(免费许可证)时遇到了一些挑战,它提供的正是我希望探索其他选项的原因。
我的repo结构是:
myrepo
|--src
|--classes
|--common
|--com
|--mybank
|--common
|--hello1.class
|--hello2.class
|--util
|--hello3.class
我尝试生成测试用例java文件,按照文档应该在
myrepo
|--src
|--test
|--java
dcover -classpath "D:\maven\bin\mvn.bat" com.mybank.common.hello1
不会生成任何测试用例java文件,不会根据com.mybank.common
或src.test.java
文件夹中的日志抛出任何错误。
不知道我试图将cli用于单个java文件或整个java repo项目时出了什么问题。
1.我希望探索可能提供更多服务或更受欢迎的替代工具。
注意:此项目是使用ant
build.xml构建的
请建议。
1条答案
按热度按时间rqdpfwrv1#
首先,您的repo代码不是Maven项目。要使独立的maven批处理文件工作,您的项目需要完全是包含pom.xml的maven项目。
**注意:**DiffBlue不支持基于Ant的项目。
因此,考虑将基于Ant的代码库迁移到基于Maven的代码库以使用DiffBlue工具。
Official DiffBlue Documentation:
前提条件:
1.目前支持Java 8 Update 351+、Java 11.0.17+或Java 17.0.5+。
1.仅支持Maven 3.2.5+或Gradle 4.9+构建工具。
1.任何项目(用于Diffblue Cover)都必须在没有失败的单元测试的情况下编译和运行。支持JUnit和TestNG测试框架。
DiffBlue如何与Maven一起工作的示例:
**注意:**我使用Mac来展示它是如何工作的。这个过程对于Windows来说也是类似的。
1.阅读here的文档以设置DiffBlue CLI。
1.执行
dcover version
以验证是否安装了DiffBlue。我有一个基于spring-boot的maven root项目,结构如下。
1.我有一个带有端点
divide
的SampleController类,它会抛出ArithmeticException:1.使用
cd
命令进入根项目目录。**注意:**从根目录本身执行命令,因为DiffBlue足够智能,可以读取所有类和包。
1.生成测试的命令如下:
示例:
dcover create com.example.demo.SampleController
当前项目结构包含执行dcover后的测试类:
1.从上面的代码生成的测试类如下所示:
控制台日志:
此外,您可以尝试其他工具,如Cucumber Framework,这是一个优秀的框架,用于通过**.feature**文件以人类理解的语法编写测试类,并能够基于.feature文件生成测试类(它使用Gherkin语言)。
更新:我找到了一个工具,名为TackleTest-Unit,可以生成基于Java的单元测试用例。这个工具最主要的是支持Ant。
Github仓库:https://github.com/konveyor/tackle-test-generator-cli
来自README.md:
TackleTest-Unit自动生成Java应用的单元测试用例。每个生成的测试用例都关注于应用程序类的可见方法的执行。测试生成可以在一组特定的应用程序类或整个应用程序上完成。
在其众多功能中,TackleTest-Unit:
阅读文档了解更多信息,该工具看起来很有前途。你可以试试看