Junit入门到掌握-17-JUnit集成-命令行运行junit用例

这篇来学习命令行如何执行Junit测试用例,其实就是一个很长的命令,我们需要分步骤地去拼接这个命令,最后这些步骤其实都是可以通过自动化完成。

1.下载Junit jar包

https://github.com/junit-team/junit4/wiki/Download-and-Install

下载两个包

其实这两个jar在我们eclipse上项目中都有

把这两个放在一个文件夹下,例如

 

2.Eclipse上打包成jar

选择Junit这个工程,右键-export-jar类型,记得勾选下面两个项目

记得选择一个路径,并取一个名字,例如xxx.jar。剩下的就是一直点击Next,直到结束。

 

3.cmd运行单元测试命令

打开cmd,输入如下命令,以下 -cp 是指 classpath

java -cp D:\junit\libs\*;D:\junit\ProteinTracker.jar org.junit.runner.JUnitCore test.TrackingServiceTests

我这边的执行纪录

C:\Users\Anthony>java -cp D:\junit\libs\*;D:\junit\ProteinTracker.jar org.junit.runner.JUnitCore test.TrackingServiceTests
JUnit version 4.13-beta-3
Before class, Onln Once
.Before Method
After Method
.Before Method
After Method
E.Before Method
After Method
.Before Method
After Method
.Before Method
After Method
After class, only once

Time: 0.116
There was 1 failure:
1) badTest(test.TrackingServiceTests)
org.junit.runners.model.TestTimedOutException: test timed out after 20 milliseconds
        at test.TrackingServiceTests.badTest(TrackingServiceTests.java:62)

FAILURES!!!
Tests run: 5,  Failures: 1

这个我们只是运行了一个用例,下面来看看一个TestSuite如何在cmd中运行

C:\Users\Anthony>java -cp D:\junit\libs\*;D:\junit\ProteinTracker.jar org.junit.runner.JUnitCore test.ProteinTrackerSuite
JUnit version 4.13-beta-3
.Run Hello Junit
.EBefore class, Onln Once
.Before Method
After Method
.Before Method
After Method
E.Before Method
After Method
.Before Method
After Method
.Before Method
After Method
After class, only once

Time: 0.1
There were 2 failures:
1) testThory(test.TheoryTests)
org.junit.experimental.theories.internal.ParameterizedAssertionError: testThory("-4" <from data[4]>)
        at org.junit.experimental.theories.Theories$TheoryAnchor.reportParameterizedError(Theories.java:293)
        at org.junit.experimental.theories.Theories$TheoryAnchor$1$1.evaluate(Theories.java:242)
        at org.junit.experimental.theories.Theories$TheoryAnchor.runWithCompleteAssignment(Theories.java:223)
        at org.junit.experimental.theories.Theories$TheoryAnchor.runWithAssignment(Theories.java:209)
        at org.junit.experimental.theories.Theories$TheoryAnchor.runWithIncompleteAssignment(Theories.java:217)
        at org.junit.experimental.theories.Theories$TheoryAnchor.runWithAssignment(Theories.java:207)
        at org.junit.experimental.theories.Theories$TheoryAnchor.evaluate(Theories.java:192)
        at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:365)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
        at org.junit.runners.ParentRunner$4.run(ParentRunner.java:330)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:78)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:328)
        at org.junit.runners.ParentRunner.access$100(ParentRunner.java:65)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:292)
        at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:305)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:412)
        at org.junit.runners.Suite.runChild(Suite.java:128)
        at org.junit.runners.Suite.runChild(Suite.java:27)
        at org.junit.runners.ParentRunner$4.run(ParentRunner.java:330)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:78)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:328)
        at org.junit.runners.ParentRunner.access$100(ParentRunner.java:65)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:292)
        at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:305)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:412)
        at org.junit.runners.Suite.runChild(Suite.java:128)
        at org.junit.runners.Suite.runChild(Suite.java:27)
        at org.junit.runners.ParentRunner$4.run(ParentRunner.java:330)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:78)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:328)
        at org.junit.runners.ParentRunner.access$100(ParentRunner.java:65)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:292)
        at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:305)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:412)
        at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
        at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
        at org.junit.runner.JUnitCore.runMain(JUnitCore.java:77)
        at org.junit.runner.JUnitCore.main(JUnitCore.java:36)
Caused by: java.lang.AssertionError
        at org.junit.Assert.fail(Assert.java:87)
        at org.junit.Assert.assertTrue(Assert.java:42)
        at org.junit.Assert.assertTrue(Assert.java:53)
        at test.TheoryTests.testThory(TheoryTests.java:29)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
        at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
        at org.junit.experimental.theories.Theories$TheoryAnchor$2.evaluate(Theories.java:279)
        at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:305)
        at org.junit.experimental.theories.Theories$TheoryAnchor$1$1.evaluate(Theories.java:237)
        ... 38 more
2) badTest(test.TrackingServiceTests)
org.junit.runners.model.TestTimedOutException: test timed out after 20 milliseconds
        at test.TrackingServiceTests.badTest(TrackingServiceTests.java:62)

FAILURES!!!
Tests run: 7,  Failures: 2

这种确实是在持续集成中的一个选择,只要安装了java,我就可以运行JUnit单元测试,不管是在win还是linux机器上都可以实现,把这个挂在jenkins上实现持续的单元测试。打包成jar是可以通过命令完成的,具体路径也是代码里可以指定的,这一切都可以实现自动化操作。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值