@minato_polaris

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

VS CodeでJavaの結合テスト(*IT.java)で「Go To Test Subject」を使用したい

解決したいこと

Visual Studio CodeでJavaSE-21を使ってSpringBootの勉強をしています。その中で、結合テストの命名を*IT.javaとしてユニットテスト(*Test.java)と同じディレクトリに格納する構成をとっています。テストファイルを編集中の話になるのですが、エディタ画面の右クリックから選択できる「Go To Test Subject」でユニットテストの場合は有効にテスト対象を認識して遷移ができるのですが、結合テストの場合は「Test Subjects not found for current file」となり、「Search file」を選んでから、手動でテストクラス名末尾のITを削除して開く必要があります。結合テストでもユニットテストと同様に一発でテスト対象に遷移できる設定方法をご存じの方がいらっしゃいましたら、ご教示いただけますと幸いです。

goToTestSubject.png
noTestSubjectRecognition.png

プロジェクトディレクトリの構成

.
├── pom.xml
├── src
│   ├── main
│   │   ├── java
│   │   │   └── xxx
│   │   │       └── xxx
│   │   │           └── xxx
│   │   │               └── app
│   │   │                   ├── AppApplication.java
│   │   │                   └── presentation
│   │   │                       └── controller
│   │   │                           └── RootController.java
│   │   └── resources
│   └── test
│       └── java
│           └── xxx
│               └── xxx
│                   └── xxx
│                       └── app
│                           ├── AppApplicationIT.java
│                           └── presentation
│                               └── controller
│                                   ├── RootControllerIT.java
│                                   └── RootControllerTest.java

自分で試したこと

  • 拡張機能パックExtension Pack for Java内のTest Runner for Java拡張機能のGiyHubリポジトリで「IT.java」や「*IT.java」でissueを検索 → ヒットした件数は0件
  • AIに質問 → 架空の.vscode/settings.json(java.test.testKindPatternsやjava.test.testMapping)の設定が回答される

開発環境

OSはWindowsでDevContainerを使ってDockerコンテナ内で開発する環境

  • Windows11 Pro
  • Visual Studio Code(ver.1.106.0)
  • Dev Containers(ver.0.431.1)
  • Java環境はmaven:3.9.11-eclipse-temurin-21-nobleのコンテナイメージから作成

使用中のVSCode拡張機能

  • Extension Pack for Java(ver.0.30.4)
  • Spring Boot Extension Pack(ver.1.64.1)

使用中のテストツール依存関係

  • org.springframework.boot:spring-boot-starter-test:3.5.7
  • org.junit.jupiter:junit-jupiter:5.12.2

VSCode設定項目

"settings": {
    "java.configuration.runtimes": [
        {
            "name": "JavaSE-21",
            "path": "/opt/java/openjdk",
            "default": true
        }
    ],
    "java.jdt.ls.java.home": "/opt/java/openjdk",
    "java.configuration.updateBuildConfiguration": "automatic",
    "java.compile.nullAnalysis.mode": "automatic"
    "search.exclude": {
        "**/target": true,
        "mvnw": true,
        "mvnw.cmd": true,
        "eclipse-java-google-style.xml": true
    },
    "files.watcherExclude": {
        "**/.git/objects/**": true,
        "**/.git/subtree-cache/**": true,
        "**/.git/logs/**": true,
        "**/target": true,
        "mvnw": true,
        "mvnw.cmd": true,
        "eclipse-java-google-style.xml": true
    },
    "java.test.config": [
        {
            "name": "Unit Tests",
            "testKind": "junit",
            "filters": {"tags": ["!integration"]}
        },
        {
            "name": "Integration Tests",
            "testKind": "junit",
            "filters": {
                "tags": ["integration"],
                "name": [".*IT"]
            }
        },
        {
            "name": "All Tests",
            "testKind": "junit"
        }
    ],
    "java.test.defaultConfig": "All Tests"
0 likes

No Answers yet.

Your answer might help someone💌