Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Run Test with coverage" doesn't work: "Could not find or load main class" #1714

Open
LeonardoBevilacqua opened this issue Jul 24, 2024 · 11 comments

Comments

@LeonardoBevilacqua
Copy link

Coverage testing isn't working for me. When I run with coverage, the progress monitor spins indefinitely and no coverage information is provided. The test results are displayed correctly if I run without coverage.

I'm seeing the following error in the extension host logs:

Error: Could not find or load main class \-javaagent:c:\\\\Users\\\\myusername\\\\.vscode\\\\extensions\\\\vscjava.vscode-java-test-0.41.1\\\\server\\\\jacocoagent.jar=destfile=c:\\\\Users\\\\myusername\\\\AppData\\\\Roaming\\\\Code\\\\User\\\\workspaceStorage\\\\df684810f26c0547aff1b945ce0cc0fc\\\\vscjava.vscode-java-test\\\\my-project\\\\coverage\\\\jacoco.exec\\ Caused by: java.lang.ClassNotFoundException: \-javaagent:c:\\\\Users\\\\myusername\\\\.vscode\\\\extensions\\\\vscjava.vscode-java-test-0.41.1\\\\server\\\\jacocoagent.jar=destfile=c:\\\\Users\\\\myusername\\\\AppData\\\\Roaming\\\\Code\\\\User\\\\workspaceStorage\\\\df684810f26c0547aff1b945ce0cc0fc\\\\vscjava.vscode-java-test\\\\my-project\\\\coverage\\\\jacoco.exec\\

vscode-java-test Extension version: 0.41.1
VS Code Version:
Version: 1.91.1
Commit: f1e16e1e6214d7c44d078b1f0607b2388f29d729
Electron: 29.4.0
ElectronBuildId: 9728852
Chromium: 122.0.6261.156
Node.js: 20.9.0
V8: 12.2.281.27-electron.0
OS: Windows_NT x64 10.0.19045

@jdneo
Copy link
Member

jdneo commented Jul 25, 2024

Is there any error log in the server log? (Trigger Java: Open Java Language Server Log File)

Is it possible to share a sample project to us?

@LeonardoBevilacqua
Copy link
Author

Here is the log

!ENTRY org.eclipse.jdt.ls.core 4 2 2024-07-25 09:13:51.207
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jdt.ls.core".
!STACK 0
java.io.FileNotFoundException: c:\Users\myusername\AppData\Roaming\Code\User\workspaceStorage\df684810f26c0547aff1b945ce0cc0fc\vscjava.vscode-java-test\my-project\coverage\jacoco.exec (The system cannot find the path specified)
	at java.base/java.io.FileInputStream.open0(Native Method)
	at java.base/java.io.FileInputStream.open(Unknown Source)
	at java.base/java.io.FileInputStream.<init>(Unknown Source)
	at org.jacoco.core.tools.ExecFileLoader.load(ExecFileLoader.java:72)
	at com.microsoft.java.test.plugin.coverage.CoverageHandler.getCoverageDetail(CoverageHandler.java:82)
	at com.microsoft.java.test.plugin.handler.TestDelegateCommandHandler.executeCommand(TestDelegateCommandHandler.java:85)
	at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler$1.run(WorkspaceExecuteCommandHandler.java:230)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler.executeCommand(WorkspaceExecuteCommandHandler.java:220)
	at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$4(JDTLanguageServer.java:604)
	at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:87)
	at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)

!ENTRY org.eclipse.jdt.ls.core 4 0 2024-07-25 09:13:51.208
!MESSAGE Error in calling delegate command handler
!STACK 0
java.io.FileNotFoundException: c:\Users\myusername\AppData\Roaming\Code\User\workspaceStorage\df684810f26c0547aff1b945ce0cc0fc\vscjava.vscode-java-test\my-project\coverage\jacoco.exec (The system cannot find the path specified)
	at java.base/java.io.FileInputStream.open0(Native Method)
	at java.base/java.io.FileInputStream.open(Unknown Source)
	at java.base/java.io.FileInputStream.<init>(Unknown Source)
	at org.jacoco.core.tools.ExecFileLoader.load(ExecFileLoader.java:72)
	at com.microsoft.java.test.plugin.coverage.CoverageHandler.getCoverageDetail(CoverageHandler.java:82)
	at com.microsoft.java.test.plugin.handler.TestDelegateCommandHandler.executeCommand(TestDelegateCommandHandler.java:85)
	at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler$1.run(WorkspaceExecuteCommandHandler.java:230)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler.executeCommand(WorkspaceExecuteCommandHandler.java:220)
	at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$4(JDTLanguageServer.java:604)
	at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:87)
	at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)

unfortunately, I cannot share a sample of the project.

Additional notes: I used to run the code in another IDE without any problem, recently tried in VSCode with the JAVA Pack extension. Everything worked fine out of the box, running, debugging and testing without issues, only the coverage action doesn't work, but I can run the mvn command to generate the report.

@jdneo
Copy link
Member

jdneo commented Aug 1, 2024

@LeonardoBevilacqua Is this still a problem in 0.42.0?

@LeonardoBevilacqua
Copy link
Author

Yes, the still a problem

@jdneo
Copy link
Member

jdneo commented Aug 6, 2024

What's the jacoco version used in your project?

@jdneo
Copy link
Member

jdneo commented Aug 7, 2024

I'm guessing that this might be caused by the version of jacoco agent of the project is different from the embedded one in extension.

In #1723, I changed to implementation that using the one from project if it's available.

Would you mind trying the pre-release 0.42.2024080609 and let me know if the issue is fixed or not?

@LeonardoBevilacqua
Copy link
Author

LeonardoBevilacqua commented Aug 7, 2024

I've tried the pre-release version, still does not work. I believe the jacoco version is 0.8.10, (not managed by my current project)

Edit: I tried with 2 projects, both with the same issue

@LoveraSantiago
Copy link

LoveraSantiago commented Sep 9, 2024

Hello.
I was facing this problem too.
As recomended by @jdneo I've tried the pre-release 0.42.2024080609 and the problem still persist.

Here we use an internal and "non-sense" framework wich brings jacoco 0.8.8 .
I've update the current project to force to bring recent version of jacoco 0.8.12.

I could find a workaround copying the jacoco.exec of the current project found it in your-current-application>target>jacoco.exec to the folder where vscode complains about ClassNotFoundException on your case "-javaagent:c:\\Users\\myusername\\.vscode\\extensions\\vscjava.vscode-java-test-0.41.1\\server\\jacocoagent.jar=destfile=c:\\Users\\myusername\\AppData\\Roaming\\Code\\User\\workspaceStorage\\df684810f26c0547aff1b945ce0cc0fc\\vscjava.vscode-java-test\\my-project\\coverage\\jacoco.exec\"

As @jdneo points out. Its something with conflict version.

Anyway thanks. I love to work with the vscode.

@jdneo
Copy link
Member

jdneo commented Sep 10, 2024

@LoveraSantiago Would you mind sharing the project that having this issue?

@mdima
Copy link

mdima commented Nov 4, 2024

Same here, just I cannot share so much of this project :S

When I run a test with coverage I receive this error:


Error: Could not find or load main class \-javaagent:c:\\\\Users\\\\michele.dimaria\\\\.vscode\\\\extensions\\\\vscjava.vscode-java-test-0.42.0\\\\server\\\\jacocoagent.jar=destfile=c:\\\\Users\\\\michele.dimaria\\\\AppData\\\\Roaming\\\\Code\\\\User\\\\workspaceStorage\\\\dff81ef8239cb1c05fbfcd6bbde7cebc\\\\vscjava.vscode-java-test\\\\uibm-persistance-importer\\\\coverage\\\\jacoco.exec\\
Caused by: java.lang.ClassNotFoundException: \-javaagent:c:\\\\Users\\\\michele.dimaria\\\\.vscode\\\\extensions\\\\vscjava.vscode-java-test-0.42.0\\\\server\\\\jacocoagent.jar=destfile=c:\\\\Users\\\\michele.dimaria\\\\AppData\\\\Roaming\\\\Code\\\\User\\\\workspaceStorage\\\\dff81ef8239cb1c05fbfcd6bbde7cebc\\\\vscjava.vscode-java-test\\\\uibm-persistance-importer\\\\coverage\\\\jacoco.exec\\

@sansovic
Copy link

Same issue here with version 0.43.0.
!ENTRY org.eclipse.jdt.ls.core 4 2 2024-11-28 19:33:31.931
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jdt.ls.core".
!STACK 0
java.io.FileNotFoundException: c:\Users\Guille\AppData\Roaming\Code\User\workspaceStorage\9f172f0711175a75b35aa3050c275a0c\vscjava.vscode-java-test\service\coverage\jacoco.exec (The system cannot find the path specified)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(Unknown Source)
at java.base/java.io.FileInputStream.(Unknown Source)
at org.jacoco.core.tools.ExecFileLoader.load(ExecFileLoader.java:72)
at com.microsoft.java.test.plugin.coverage.CoverageHandler.getCoverageDetail(CoverageHandler.java:82)
at com.microsoft.java.test.plugin.handler.TestDelegateCommandHandler.executeCommand(TestDelegateCommandHandler.java:85)
at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler$1.run(WorkspaceExecuteCommandHandler.java:230)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler.executeCommand(WorkspaceExecuteCommandHandler.java:220)
at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$4(JDTLanguageServer.java:610)
at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:87)
at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)

This is on a freshly installed Windows 11 Pro machine. I have the same issue on a different Windows 11 Pro laptop but not on a MacBook Air, always on the exact same project.

The issue on Windows affects all the projects I tried.

I cannot share files but I can run tests if it helps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants