java-其他-junit5使用

maven工程结构

$ tree . /F
D:~\DESKTOP\TEST\MY_PROJECT
│   pom.xml
│
├───src
│   ├───main
│   │   └───java
│   │       └───com
│   │           └───example
│   │                   Hello.java
│   │
│   └───test
│       └───java
│           └───com
│               └───example
│                       HelloTest.java
│
└───target
    ├───classes
    └───test-classes

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>org.example</groupId>
    <artifactId>my_project</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>5.8.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>

Hello.java内容

package com.example;

public class Hello {
    public static String say() {
        return "hello";
    }
}

HelloTest.java内容

package com.example;

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

class HelloTest {

    @Test
    void say() {
        assertEquals("hello", Hello.say());
    }
}

下载maven依赖到本地仓库

$ mvn dependency:resolve

编译Hello.java

$ javac -d "target/classes" "src/main/java/com/example/Hello.java"

运行后,target/classes目录下生成class文件。

编译HelloTest.java

$ javac \
-cp "target/classes;\
C:\Users\zc\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.8.2\junit-jupiter-api-5.8.2.jar;\
C:\Users\zc\.m2\repository\org\apiguardian\apiguardian-api\1.1.2\apiguardian-api-1.1.2.jar" \
-d "target/test-classes" \
"src/test/java/com/example/HelloTest.java"

HelloTest.java 中引用了 Hello 和一些 junit 相关以依赖,要在 -cp 中指定。

运行后,target/test-classes目录下生成class文件。

命令行执行测试

使用junit5实现类jar包(内部打包了所有junit相关依赖)来执行测试。

下载junit-platform-console-standalone-1.8.2.jarCentral Repository: org/junit/platform/junit-platform-console-standalone (maven.org)

把它放到工程同级目录下。

(1)测试某个类:

$ java -jar ../junit-platform-console-standalone-1.8.2.jar \
-cp="D:\code\java\mvn_demo\target\test-classes;D:\code\java\mvn_demo\target\classes" \
-c=com.example.HelloTest

-cp 要包含 HelloTest.class,还要包含 Hello.class(因为HelloTest.class中有引用)。

(2)测试某个方法:

$ java -jar ../junit-platform-console-standalone-1.8.2.jar \
-cp="D:\code\java\mvn_demo\target\test-classes;D:\code\java\mvn_demo\target\classes" \
-m=com.example.HelloTest#say

输出结果:

Thanks for using JUnit! Support its development at https://junit.org/sponsoring

.                                                                                                                                                                                                                              
+-- JUnit Jupiter [OK]                                                                                                                                                                                       
| '-- HelloTest [OK]                                                                                                                                                                                         
|   '-- say() [OK]                                                                                                                                                                                           
'-- JUnit Vintage [OK]                                                                                                                                                                                       

Test run finished after 134 ms
[         3 containers found      ]
[         0 containers skipped    ]
[         3 containers started    ]
[         0 containers aborted    ]
[         3 containers successful ]
[         0 containers failed     ]
[         1 tests found           ]
[         0 tests skipped         ]
[         1 tests started         ]
[         0 tests aborted         ]
[         1 tests successful      ]
[         0 tests failed          ]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值