标签:java unit-testing junit static-analysis analyzer
我有这个逻辑来检查java文件内容并验证它是否有注释,该注释说明该文件的作者(不一定是创建者) – 项目的特殊要求.
我使用Junit编写了一个单元测试来检查逻辑,它工作正常.
并且我希望所有.java文件都遵守该标准,并且如果其中至少有一个不符合该标准,则会使构建失败.
到目前为止,我有我的Junit测试方法来执行以下操作,
>读取应用程序中的所有.java文件内容
>对于每个内容,检查它是否包含具有标准格式的注释
>如果测试用例中至少有一个没有使用这种格式的评论(以便最终构建失败),则使测试用例失败
这是正确的方法吗?它将达到目的,但使用Junit测试进行一些验证工作是一种很好的做法.
如果没有,我应该使用什么样的方法来分析(使用我的逻辑 – 我有一个带有逻辑的Analyzer.java文件)构建时间内的所有文件,如果所有文件都符合要求的标准,则构建成功.
编辑:
代码评论检查只是一个验证.有几项检查需要完成. (例如:变量名应该以给定的后缀结束,模式使用一些内部库等等)所有场景都在该逻辑中处理(Analyzer.java).只需要检查所有java文件内容并使用该逻辑来验证它们.
可以肯定地说,我有一个java库,并且在调用接受文件名的方法时,检查(fileName),它将分析文件并在传递一些不可见的逻辑时返回true.如果返回false,则构建失败.因为我需要在构建失败的情况下使构建失败,所以我在jUnit测试中使用它来检查代码库中的所有.java文件.
如果这可以通过静态代码分析工具完成(但需要使用我所拥有的逻辑),那么它也是可以接受的.但我不知道现有的静态代码分析器是否支持这种自定义验证.
解决方法:
Is that approach I’m using correct ? … is it a good practice to use junit test to do some verification work
不可以.单元测试用于检查代码单元的完整性,确保单元的行为正常工作.您不应该在单元测试中检查注释/文档.
Since I need to fail the build if something is not right..
您需要在构建过程中添加更多步骤,更具体地说,是静态分析步骤.
单元测试被视为构建步骤,以及编译,执行和部署.您的项目需要一个额外的步骤,这将带我到以下…
您可以使用build tool(例如Apache Ant)为项目的构建添加步骤.虽然静态分析没有捆绑(这只是一个构建自动化工具),但它确实允许您确保自定义构建步骤的构建失败失败.
话虽如此,您可以添加一个触发静态分析程序的步骤. This page包含使用Ant创建多个构建步骤的示例,包括静态代码分析和错误检查.您甚至可以创建自己的分析器来使用.
有关构建工具和更多信息,请参阅自动化:
StackOverflow: What is a Build Tool?
Wiki: Software Build > Build Tools
标签:java,unit-testing,junit,static-analysis,analyzer 来源: https://codeday.me/bug/20190623/1266251.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。