13
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VSCodeでJUnitを動かせるようにする

Posted at

前提

会社の部活動でテストコードを勉強中。
会社PCではSTSを使っているが、自宅では見栄えがよいVScodeを使いたい。
ということで、VScodeでJunitを使うためのメモ。

流れ

  1. JDKインストール
  2. Java Extension Packインストール
  3. Java プロジェクト作成
  4. JUnit テスト実行

1. JDKインストール

適当にダウンロードしてインストールする。
JDKのパスを確認しておく。
今回は以下のバージョンとする。
C:\Program Files\Java\jdk-11.0.9

2. Java Extension Packインストール

VSCodeに拡張機能のJava Extension Packをインストールする。
機能の説明は次のとおり。
Java Test RunnerにJUnitが含まれる。

Java Extension Pack
Java Extension Pack is a collection of popular extensions that can help write, test and debug Java applications in Visual Studio Code. Check out Java in VS Code to get started.

Extensions Included
By installing Java Extension Pack, the following extensions are installed:

📦 Language Support for Java™ by Red Hat
Code Navigation
Auto Completion
Refactoring
Code Snippets
📦 Debugger for Java
Debugging
📦 Java Test Runner
Run & Debug JUnit/TestNG Test Cases
📦 Maven for Java
Project Scaffolding
Custom Goals
📦 Project Manager for Java
Manage Java projects, referenced libraries, resource files, packages, >classes, and class members
📦 Visual Studio IntelliCode
AI-assisted development
Completion list ranked by AI

Java Home設定

初期設定としてJAVA HOMEを設定する。
Ctrl+,で設定タブからJava: Homeを入力すると設定箇所がたくさん表示される。
Java: Homeを選択する。
JavaHomeのsettingjson.png

setting.jsonが開くので、以下行を追加する。
\は2つ並べないといけないので注意。
"java.home": "C:\\Program Files\\Java\\jdk-11.0.9"

  • setting.json
{
    "workbench.sideBar.location": "right",
    "editor.suggestSelection": "first",
    "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
    "files.exclude": {
        "**/.classpath": true,
        "**/.project": true,
        "**/.settings": true,
        "**/.factorypath": true
    },
    "java.home": "C:\\Program Files\\Java\\jdk-11.0.9"
}

3. Java プロジェクト作成

  1. Ctrl+Shift+p でコマンドパレットを開き Java: Create java Project を選択。
  2. Select the project typeMaven を選択。
  3. Select an archetypemaven-archetype-quickstart を選択。
  4. Select a version1.4 を選択。
  5. フォルダーを選択。
  6. VSCodeのターミナルでビルド処理が動き出して入力待ちで止まる。
    terminal.png
  7. Define value for property 'groupId': で「プロジェクトが属する組織や上位プロジェクトを識別できる名前(.区切り)」【例:com.example】を入力。
  8. Define value for property 'artifactId': で「jar/warの名前」【例:test】を入力。
  9. Define value for property 'version' 1.0-SNAPSHOT: : そのままEnter。
  10. Define value for property 'package' test: : でそのままEnter。
  11. Y: :でそのままEnter。

ターミナルはPowerShellで出力内容例は以下のとおり。

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新しいクロスプラットフォームの PowerShell をお試しください https://aka.ms/pscore6

PS C:\Users\tomoo> cd "c:\Users\tomoo\.vscode\extensions\vscjava.vscode-maven-0.28.0\resources\maven-wrapper"
PS C:\Users\tomoo\.vscode\extensions\vscjava.vscode-maven-0.28.0\resources\maven-wrapper> & "c:\Users\tomoo\.vscode\extensions\vscjava.vscode-maven-0.28.0\resources\maven-wrapper\mvnw.cmd" org.apache.maven.plugins:maven-archetype-plugin:3.1.2:generate -DarchetypeArtifactId="maven-archetype-quickstart" -DarchetypeGroupId="org.apache.maven.archetypes" -DarchetypeVersion="1.4" -DoutputDirectory="c:\Users\tomoo\src"
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:3.1.2:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:3.1.2:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO]
[INFO]
[INFO] --- maven-archetype-plugin:3.1.2:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode
[INFO] Archetype repository not defined. Using the one from [org.apache.maven.archetypes:maven-archetype-quickstart:1.4] found in catalog remote
Define value for property 'groupId': com.example
Define value for property 'artifactId': test
Define value for property 'version' 1.0-SNAPSHOT: : 
Define value for property 'package' com.example: : 
Confirm properties configuration:
groupId: com.example
artifactId: test
version: 1.0-SNAPSHOT
package: com.example
 Y: :
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: maven-archetype-quickstart:1.4
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.example
[INFO] Parameter: artifactId, Value: test
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: com.example
[INFO] Parameter: packageInPathFormat, Value: com/example
[INFO] Parameter: package, Value: com.example
[INFO] Parameter: groupId, Value: com.example
[INFO] Parameter: artifactId, Value: test
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Project created from Archetype in dir: c:\Users\tomoo\src\test
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:54 min
[INFO] Finished at: 2021-03-27T13:54:27+09:00
[INFO] ------------------------------------------------------------------------
PS C:\Users\tomoo\.vscode\extensions\vscjava.vscode-maven-0.28.0\resources\maven-wrapper> 

ビルドされたモノの確認

artifactIdの名前のフォルダが作成される。
ツリー構造は次のとおりでpom.xmlApp.javaAppTest.javaが作成されている。

├─test
│  │  pom.xml
│  │
│  └─src
│      ├─main
│      │  └─java
│      │      └─com
│      │          └─example
│      │                  App.java
│      │
│      └─test
│          └─java
│              └─com
│                  └─example
│                          AppTest.java

pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.example</groupId>
  <artifactId>test</artifactId>
  <version>1.0-SNAPSHOT</version>

  <name>test</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.7.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

App.java

package test;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}

TestApp.java

package test;

import static org.junit.Assert.assertTrue;

import org.junit.Test;

/**
 * Unit test for simple App.
 */
public class AppTest 
{
    /**
     * Rigorous Test :-)
     */
    @Test
    public void shouldAnswerWithTrue()
    {
        assertTrue( true );
    }
}

4. JUnit テスト実行

最後にJUnitを動作確認する。

  1. VScodeのエクスプローラでビルドで指定したフォルダを開く。
  2. AppTest.java で 右クリック-Run Java をクリックする。
    RunJava.png
  3. ポップアップが出るのでYesをクリックする。
    popup.png
  4. AppTest.javaファイルを開く。
  5. Run Testをクリックする。
  6. VScode下部のステータスバーの バツ数字チェック数字 をクリックし、Java Test Reportを開く。
    グリーンバーになっておりテストOKであることを確認する。
    RunTest.png
    JUnit.png
13
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?