Unable to run Junit 5 Tests using Java Test Runner

Đang mở
#1,757 3 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
java, vscode
Lĩnh vực
devtools, testing-qa

Hướng nghiên cứu

Bắt đầu bằng cách tái hiện lỗi với các dependency trong build.gradle và các thiết lập java.test.config trong settings.json, sau đó chạy CalculatorTest thông qua Java Test Runner. Đọc ServiceConfigurationError được báo cáo và stack trace của JUnit5TestReference để truy vết các test engine nào đang được tải. Hoàn tất khi xác định được lý do VintageTestEngine được yêu cầu và ghi lại một hướng giải quyết hoặc loại trừ đã được xác minh.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

ai-triaged gradle junit question test-discovery

Hello,
We have our own vscode which is running inside a docker container & running on a browser. We are using

  • Java 17 -> which is from the vscode extension "Language Support for Java(TM) by Red Hat -> v1.35.1"
  • Debugger for Java extension -> v0.56.2
  • Test Runner for Java extension -> v0.40.1
  • Build Tool is Gradle for Java extension -> v3.13.2023120800

I have added the below dependencies in build.gradle file:
testImplementation 'org.junit.jupiter:junit-jupiter:5.12.0'
testImplementation 'org.junit.platform:junit-platform-launcher:1.12.0'

Running simple test:
`package platform.demo.unittest;

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

public class CalculatorTest {
@Test
public void testAddition() {
int result = 2 + 3;
assertEquals(5, result, "2 + 3 should equal 5");
}
}`

Below is the settings I added to the User > settings.json:
"java.test.config": { "name": "testconfig", "vmArgs": [ "-Dremoting.location=/home/myconnector/remoting.xml" ], }, "java.test.defaultConfig": "testconfig"

When I run the test by using Java Test Runner, I get the following error log:
java.util.ServiceConfigurationError: org.junit.platform.engine.TestEngine: Provider org.junit.vintage.engine.VintageTestEngine not found at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:593) at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(ServiceLoader.java:1219) at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1228) at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1273) at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1309) at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1393) at java.base/java.lang.Iterable.forEach(Iterable.java:74) at org.junit.platform.launcher.core.LauncherFactory.collectTestEngines(LauncherFactory.java:158) LauncherFactory.java:158 at org.junit.platform.launcher.core.LauncherFactory.createDefaultLauncher(LauncherFactory.java:134) LauncherFactory.java:134 at org.junit.platform.launcher.core.LauncherFactory.lambda$create$2(LauncherFactory.java:128) LauncherFactory.java:128 at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25) ClasspathAlignmentCheckingLauncherInterceptor.java:25 at org.junit.platform.launcher.core.DefaultLauncherSession.<init>(DefaultLauncherSession.java:57) DefaultLauncherSession.java:57 at org.junit.platform.launcher.core.SessionPerRequestLauncher.createSession(SessionPerRequestLauncher.java:75) SessionPerRequestLauncher.java:75 at org.junit.platform.launcher.core.SessionPerRequestLauncher.discover(SessionPerRequestLauncher.java:55) SessionPerRequestLauncher.java:55 at org.eclipse.jdt.internal.junit5.runner.JUnit5TestReference.<init>(JUnit5TestReference.java:46)

  • With Junit5 dependency, it should use junit-jupiter-engine rt?
  • If I want to run the Junit 4 Tests with Junit5 then I need to use junit-vintage rt?
  • I am still not understanding on why it is complaining the junit-vintage-engine?

I was verifying any transitive dependency due to addition of dependencies in my gradle file -> Zero records found.

  • Can you help me what the error log says?
  • How to resolve it?
  • Is Java Test Runner using Junit-vintage-engine to run tests? If so, how can i exclude it?
  • Or something Else? Any leads will probably help me a lot
Ngôn ngữ chính
TypeScript
Star
340
Fork
173
Merge trung bình
1 ngày 2 giờ
Pull request đã merge (30 ngày)
17

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của microsoft/vscode-java-test

Tất cả issue của microsoft/vscode-java-test

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.