Java - 查找仅在测试中使用的方法(未在源代码中使用)
Java - find methods used only in test (unused in source code)
未使用的方法有未使用的警告,可以删除,例如在 Eclipse 中
The method myMethod() from the type MyClass is never used locally
但有时您编写带有单元测试的代码,之后代码未在生产中使用(或删除),但方法仍(仅)用于单元测试
我们如何找到这些未在实际代码中使用的未使用方法(仅测试代码)
- 我的测试在 tests 文件夹下,代码在 src 文件夹下
例如DAO方法:
public interface TransactionDao {
public boolean updateTrasaction(int id);
}
@Repository
public class TransactionDaoImpl implements TransactionDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public boolean updateTrasaction(int id) {
return (jdbcTemplate.update(... )>0);
}
}
仅在测试中使用:
@Test
public void testUpdateTrasaction() {
Assert.assertEquals(transactionDao.updateTrasaction(1234), true);
}
我知道 static analysis tools and Halting Problem,但是,是否有针对此特定要求的解决方案?
在我看来,最简单的解决方案是首先从您的项目中删除或排除测试包,然后在构建后利用 some tool that finds all the unused methods, or update the Java Compiler Error/Warning settings for unused/unnecessary code 为您获取一些 errors/warnings 作为结果。
我找不到任何未使用的方法查找器 工具,您可以在其中排除某些软件包的某些用法。如果有的话,我仍然建议使用编译器执行上述步骤,因为我宁愿在我的 IDE 上依赖较少的工具,如果工具对生产力的贡献很小。
我认为更直接的答案是使用 DeadCodeDetector 参见:https://github.com/evernat/dead-code-detector/wiki
首先,运行 它包括您的 src/main 和 src/test 类 并输出到 XML 日志。
其次,运行 它只包括你的 src/main,并输出到第二个 XML 日志。
这两者之间的区别在于只在测试中调用的方法。
这是我正在采用的方法,用于删除不再需要的相当大的子系统。如果在 p运行 那个子系统之后有新的未使用的方法,那么它们只被那个子系统引用,它们也可以被删除。
未使用的方法有未使用的警告,可以删除,例如在 Eclipse 中
The method myMethod() from the type MyClass is never used locally
但有时您编写带有单元测试的代码,之后代码未在生产中使用(或删除),但方法仍(仅)用于单元测试
我们如何找到这些未在实际代码中使用的未使用方法(仅测试代码)
- 我的测试在 tests 文件夹下,代码在 src 文件夹下
例如DAO方法:
public interface TransactionDao {
public boolean updateTrasaction(int id);
}
@Repository
public class TransactionDaoImpl implements TransactionDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public boolean updateTrasaction(int id) {
return (jdbcTemplate.update(... )>0);
}
}
仅在测试中使用:
@Test
public void testUpdateTrasaction() {
Assert.assertEquals(transactionDao.updateTrasaction(1234), true);
}
我知道 static analysis tools and Halting Problem,但是,是否有针对此特定要求的解决方案?
在我看来,最简单的解决方案是首先从您的项目中删除或排除测试包,然后在构建后利用 some tool that finds all the unused methods, or update the Java Compiler Error/Warning settings for unused/unnecessary code 为您获取一些 errors/warnings 作为结果。
我找不到任何未使用的方法查找器 工具,您可以在其中排除某些软件包的某些用法。如果有的话,我仍然建议使用编译器执行上述步骤,因为我宁愿在我的 IDE 上依赖较少的工具,如果工具对生产力的贡献很小。
我认为更直接的答案是使用 DeadCodeDetector 参见:https://github.com/evernat/dead-code-detector/wiki
首先,运行 它包括您的 src/main 和 src/test 类 并输出到 XML 日志。 其次,运行 它只包括你的 src/main,并输出到第二个 XML 日志。
这两者之间的区别在于只在测试中调用的方法。
这是我正在采用的方法,用于删除不再需要的相当大的子系统。如果在 p运行 那个子系统之后有新的未使用的方法,那么它们只被那个子系统引用,它们也可以被删除。