【问题标题】:How can I fix the NoClassDefFoundError error that occurs when using evosuite to generate test cases?如何修复使用evosuite生成测试用例时出现的NoClassDefFoundError错误?
【发布时间】:2019-03-24 13:39:09
【问题描述】:

当我使用 evosuite 为我的 android 项目生成测试用例时遇到此错误。

一开始出现这样的错误:“can not find this class:android.support.v7.widget.Toolbar” 我通过将Android的jar包:collections-28.0.0.jar加入CP路径解决了这个问题,然后在为多个文件自动生成用例的过程中出现如下错误:

[MASTER] 21:22:39.979 [logback-2] 错误 TestClusterGenerator - com.rapidapp.base.account.AppBaseService 的问题。无法为类 android.support.v7.widget.Toolbar 添加依赖项:java.lang.NoClassDefFoundError: android/support/v7/widget/Toolbar$SavedState [java.lang.Class.getDeclaringClass0(Native Method), java.lang.Class.getDeclaringClass(Class.java:1235), java.lang.Class.getEnclosureClass(Class.java:1277), java.lang.Class.getSimpleBinaryName (Class.java:1443)、java.lang.Class.getSimpleName(Class.java:1309)、java.lang.Class.isAnonymousClass(Class.java:1411)、org.evosuite.setup.TestUsageChecker.canUse(TestUsageChecker. java:155), org.evosuite.setup.TestUsageChecker.canUse(TestUsageChecker.java:338), org.evosuite.setup.TestClusterGenerator.addDependencyClass(TestClusterGenerator.java:975), org.evosuite.setup.TestClusterGenerator.resolveDependencies(TestClusterGenerator .java:358), org.evosuite.setup.TestClusterGenerator.generateCluster(TestClusterGenerator.java:137), org.evosuite.setup.DependencyAnalysis.analyze(DependencyAnalysis.java:118), org.evosuite.setup.DependencyAnalysis.analyzeClass( DependencyAnalysis.java:132)、org.evosuite.TestSuiteGenerator.initializeTargetClass(TestSuiteGenerator.java:110)、org.evosuite.TestSuiteGenerator.gener ateTestSuite(TestSuiteGenerator.java:130), org.evosuite.rmi.service.ClientNodeImpl$1.run(ClientNodeImpl.java:145), java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511), java. util.concurrent.FutureTask.run(FutureTask.java:266), java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142), java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) , java.lang.Thread.run(Thread.java:745)]

最后没有生成用例。

【问题讨论】:

    标签: java android evosuite


    【解决方案1】:

    我以前遇到过此异常,当时(尝试)在另一个操作系统上运行已在一个操作系统上编译的代码。此外,当操作系统发生更新时。

    虽然您可能认为向后兼容性应该稍后删除它,但情况并非总是如此!

    【讨论】:

    • 据我所知,我们第一次遇到这种情况是因为将系统迁移到新架构。该功能被确定为危险并已被弃用。第二次,由 puppet 执行了操作系统的自动更新,(网络)服务器仍在运行,但它脚下的地面已经发生了变化(可以这么说),只需要重新启动即可。在你的情况下,我不能说,因为我没有使用 evosuite 或 android 的经验。
    • 还是谢谢大家,我会继续寻找解决办法的,等我找到了会同步到这里。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 1970-01-01
    • 2017-08-22
    相关资源
    最近更新 更多