ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2019-07-08 19:43:46  阅读:287  来源: 互联网

标签:ParentRunner java 17 Junit Method org junit runners


这篇来学习命令行如何执行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是可以通过命令完成的,具体路径也是代码里可以指定的,这一切都可以实现自动化操作。

标签:ParentRunner,java,17,Junit,Method,org,junit,runners
来源: https://blog.csdn.net/u011541946/article/details/95062135

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有