Skip to content

ClassNotFoundException: org.mockito.MockedConstruction$Context in some Gradle projects when generate tests with Fuzzing #2523

Closed
@tyuldashev

Description

@tyuldashev

Description
Fuzzing generation for org.utbot.examples.recursion.Recursion#vertexSum causes errors.

It seems specific to Gradle projects and reproducible not only in UTBot project.

To Reproduce

  1. Install UnitTestBot plugin built from main in IntelliJ IDEA
  2. Open UTBot project
  3. In settings set Fuzzing = 100%
  4. Generate tests for org.utbot.examples.recursion.Recursion#vertexSum

Expected behavior
Tests are generated.

Actual behavior
One error test is generated:

    public void testVertexSum_errors() {
        // Couldn't generate some tests. List of errors:
        // 
        // 1 occurrences of:
        // org.mockito.MockedConstruction$Context

    }

Screenshots, logs

Full exception in utbot-engine-current.log:

java.lang.ClassNotFoundException: org.mockito.MockedConstruction$Context
	at java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[?:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:587) ~[?:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
	at org.utbot.framework.plugin.api.util.IdUtilKt.getJClass(IdUtil.kt:104) ~[utbot-framework-api-2023.8.5065.jar:?]
	at org.utbot.framework.plugin.api.util.IdUtilKt.getEnclosingClass(IdUtil.kt:62) ~[utbot-framework-api-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.ConstructorUtilsKt.importIfNeeded(ConstructorUtils.kt:254) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.services.framework.MockitoStaticMocker.mockConstruction(MockFrameworkManager.kt:442) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.services.framework.MockitoStaticMocker.mockNewInstance(MockFrameworkManager.kt:271) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.services.framework.MockFrameworkManager.mockNewInstance(MockFrameworkManager.kt:152) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgMethodConstructor.setupInstrumentation(CgMethodConstructor.kt:215) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgMethodConstructor$createTestMethod$1$2$mainBody$1.invoke(CgMethodConstructor.kt:1463) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgMethodConstructor$createTestMethod$1$2$mainBody$1.invoke(CgMethodConstructor.kt:1461) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgMethodConstructor$createTestMethod$1$2.invoke(CgMethodConstructor.kt:1498) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgMethodConstructor$createTestMethod$1$2.invoke(CgMethodConstructor.kt:1449) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContextOwner$block$1.invoke(CgContext.kt:260) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContextOwner$block$1.invoke(CgContext.kt:259) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContextOwner$DefaultImpls.withNameScope(CgContext.kt:365) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContext.withNameScope(CgContext.kt:480) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContextOwner$DefaultImpls.block(CgContext.kt:259) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContext.block(CgContext.kt:480) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgMethodConstructor.block(CgMethodConstructor.kt) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgMethodConstructor$testMethod$testMethod$1.invoke(CgMethodConstructor.kt:1947) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgMethodConstructor$testMethod$testMethod$1.invoke(CgMethodConstructor.kt:1944) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.BuildersKt.buildTestMethod(Builders.kt:110) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgMethodConstructor.testMethod(CgMethodConstructor.kt:1944) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgMethodConstructor.testMethod$default(CgMethodConstructor.kt:1903) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgMethodConstructor$createTestMethod$1.invoke(CgMethodConstructor.kt:1449) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgMethodConstructor$createTestMethod$1.invoke(CgMethodConstructor.kt:1442) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgMethodConstructor.withTestMethodScope(CgMethodConstructor.kt:1817) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgMethodConstructor.createTestMethod(CgMethodConstructor.kt:1442) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgAbstractTestClassConstructor$createTest$1.invoke(CgAbstractTestClassConstructor.kt:105) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgAbstractTestClassConstructor$createTest$1.invoke(CgAbstractTestClassConstructor.kt:104) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContextOwner$DefaultImpls.withExecutionIdScope(CgContext.kt:288) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContext.withExecutionIdScope(CgContext.kt:480) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgAbstractTestClassConstructor.withExecutionIdScope(CgAbstractTestClassConstructor.kt) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgAbstractTestClassConstructor.createTest(CgAbstractTestClassConstructor.kt:104) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgSimpleTestClassConstructor.constructTestSet(CgSimpleTestClassConstructor.kt:94) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgSimpleTestClassConstructor$constructTestClassBody$1$2.invoke(CgSimpleTestClassConstructor.kt:55) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgSimpleTestClassConstructor$constructTestClassBody$1$2.invoke(CgSimpleTestClassConstructor.kt:54) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContextOwner$DefaultImpls.withTestSetIdScope(CgContext.kt:283) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContext.withTestSetIdScope(CgContext.kt:480) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgAbstractTestClassConstructor.withTestSetIdScope(CgAbstractTestClassConstructor.kt) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgSimpleTestClassConstructor$constructTestClassBody$1.invoke(CgSimpleTestClassConstructor.kt:54) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgSimpleTestClassConstructor$constructTestClassBody$1.invoke(CgSimpleTestClassConstructor.kt:30) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.BuildersKt.buildClassBody(Builders.kt:75) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgSimpleTestClassConstructor.constructTestClassBody(CgSimpleTestClassConstructor.kt:30) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgSimpleTestClassConstructor.constructTestClassBody(CgSimpleTestClassConstructor.kt:27) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgAbstractTestClassConstructor$constructTestClass$1.invoke(CgAbstractTestClassConstructor.kt:72) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgAbstractTestClassConstructor$constructTestClass$1.invoke(CgAbstractTestClassConstructor.kt:63) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.BuildersKt.buildClass(Builders.kt:64) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgAbstractTestClassConstructor.constructTestClass(CgAbstractTestClassConstructor.kt:63) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgAbstractTestClassConstructor$construct$1$1.invoke(CgAbstractTestClassConstructor.kt:54) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgAbstractTestClassConstructor$construct$1$1.invoke(CgAbstractTestClassConstructor.kt:54) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContext.withTestClassScope(CgContext.kt:585) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgAbstractTestClassConstructor.withTestClassScope(CgAbstractTestClassConstructor.kt) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgAbstractTestClassConstructor$construct$1.invoke(CgAbstractTestClassConstructor.kt:54) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgAbstractTestClassConstructor$construct$1.invoke(CgAbstractTestClassConstructor.kt:53) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.BuildersKt.buildClassFile(Builders.kt:49) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.tree.CgAbstractTestClassConstructor.construct(CgAbstractTestClassConstructor.kt:53) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.generator.CodeGenerator.generate(CodeGenerator.kt:17) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.generator.AbstractCodeGenerator$generateAsStringWithTestReport$1$1.invoke(AbstractCodeGenerator.kt:48) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.generator.AbstractCodeGenerator$generateAsStringWithTestReport$1$1.invoke(AbstractCodeGenerator.kt:47) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContext.withTestClassFileScope(CgContext.kt:575) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.generator.AbstractCodeGenerator$generateAsStringWithTestReport$1.invoke(AbstractCodeGenerator.kt:47) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.generator.AbstractCodeGenerator$generateAsStringWithTestReport$1.invoke(AbstractCodeGenerator.kt:46) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.generator.AbstractCodeGenerator.withCustomContext(AbstractCodeGenerator.kt:75) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.generator.AbstractCodeGenerator.generateAsStringWithTestReport(AbstractCodeGenerator.kt:46) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.codegen.generator.AbstractCodeGenerator.generateAsStringWithTestReport$default(AbstractCodeGenerator.kt:41) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.process.EngineProcessMainKt$setup$5.invoke(EngineProcessMain.kt:156) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.framework.process.EngineProcessMainKt$setup$5.invoke(EngineProcessMain.kt:153) ~[utbot-framework-2023.8.5065.jar:?]
	at org.utbot.rd.IdleWatchdog$measureTimeForActiveCall$1$2$1.invoke(ClientProcessUtil.kt:115) ~[utbot-rd-2023.8.5065.jar:?]
	at org.utbot.rd.IdleWatchdog.wrapActive(ClientProcessUtil.kt:88) ~[utbot-rd-2023.8.5065.jar:?]
	at org.utbot.rd.IdleWatchdog$measureTimeForActiveCall$1.invoke(ClientProcessUtil.kt:114) ~[utbot-rd-2023.8.5065.jar:?]
	at com.jetbrains.rd.framework.IRdEndpoint$set$1.invoke(TaskInterfaces.kt:182) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.IRdEndpoint$set$1.invoke(TaskInterfaces.kt:182) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.impl.RdCall.onWireReceived(RdTask.kt:362) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:57) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:56) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.impl.ProtocolContexts.readMessageContextAndInvoke(ProtocolContexts.kt:148) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:56) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:54) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.util.threading.SingleThreadSchedulerBase.queue$lambda-3(SingleThreadScheduler.kt:41) ~[rd-core-2023.1.2.jar:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
	at java.lang.Thread.run(Thread.java:833) [?:?]
17:09:11.903 | INFO  | AbstractCodeGenerator     | Code generation phase finished at 17:09:11.903

Environment

IntelliJ IDEA version - 2023.2
Project - utbot or just copy sample to any other Java project
Plugin - 2023.8.5058

Additional context
There is no such error in 2023.1.5 with plugin from latest release 2023.3, so that's regression error.

Metadata

Metadata

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions