java juint框架的windows自动化-自动运行juint程序简述
在京东混了一个月,基本有点稳定了,觉得也有所余力了现在,继续写博客吧,不过以后更新也许不是那么频繁了
本人使用的是juint框架,对开发是一个单元测试的java框架,但是对测试而言是java的基石之一,与testng差不多平分秋色(好吧,其实是稍微差一点)
在上文http://www.cnblogs.com/xuezhezlr/p/7773614.html简单介绍了juint框架后,这里作一个简单的比较
juint框架与传统main函数的主要区别:
1juint框架其实质包含多个main函数,相互间做到了一定程度上的互不影响,即便一个抱错也不会对所有用例有所影响,对于针对一个测试类编写大量的测试用例,是很相近的,更贴近测试
2juint框架有分明的before,after,beforeclass等相关标注,一定程度上简化了代码编写,不过main函数比较复杂的for循环也可以做到
3ant在执行juint框架的时候有对应的标签,可以生成一定的报告来进行呈现
4juint其本身有大量的测试人员使用,使用该框架可以直接降低团队沟通成本
其实最主要的问题是,笔者只是对juint框架有一点粗浅的了解,,,其实对测试而言,特别是自动化测试,不一定需要你对testng,python等东西都有了解,只需要能自己用自己的办法写出来自己觉得合适,别人也觉得ok的东西就好,达到目的的重要性远大于手段的华丽
下面开始演示一个juint框架的代码自动执行,发邮件的操作
首先先在上文http://www.cnblogs.com/xuezhezlr/p/7725301.html要求的环境中新建立一个java的工程,一般的java的包是有目录层次的,本文也模拟一般的环境下多级目录的情景,在src中的目录依次建立文件夹,在其中建立一个方法testzhiyinlou.java,笔者的是E:\work\TestAuto_Integration\src\main\java\JD\jincai\ppt\testzhiyinlou.java,各位的要自行摸索,,,
在java文件中写出下面代码
package JD.jincai.ppt;
import org.junit.Test;
import org.junit.Before;
public class testzhiyinlou {
int x=0;
@Before
public void setUp() throws Exception {
x++;
}
@Test
public void testszlr1() throws Exception {
System.out.println(++x);
}
@Test
public void testszlr2() throws Exception {
System.out.println(++x);
}
}
理论上是可以运行的,,,不能运行自行摸索,结果应该是两个2
也就是说在我们已经学会了如何自动运行.bat文件的基础上,本文主要是讲述如何用一个.bat文件运行上述代码这么一件事情
说直白点,我们要做的是,自动运行.bat文件然后.bat文件中会调用ant命令,而ant命令呢,又直接调用build.xml文件,所以,所谓juint自动化和java自动化的区别,本质是代码和build.xml文件的区别~
代码已经贴上去了,我们说一下与上文配套的build文件
建立一个build.xml文件,写上如下内容:
<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="junit and report" name="TestAuto">
<tstamp prefix="mydate">
<format property="day" pattern="yyyy-MM-dd"/>
<format property="time" pattern="HH:mm:ss"/>
<format property="dt" pattern="yyyy-MM-dd HH:mm:ss.SSS"/>
<format property="dt1" pattern="yyyyMMdd" offset="-1" unit="day" />
<format property="dt2" pattern="yyyyMMdd" offset="-3" unit="day" />
<format property="dt3" pattern="yyyyMMdd" offset="0" unit="day" />
<format property="dt4" pattern="yyyyMMddHHmmss" />
</tstamp>
<property name="appname" value="TestAuto"/>
<property name="build.dir" value="C:\Users\zouleiran\Desktop\autoTest" />
<property name="build.class.dir" value="E:\work\TestAuto_Integration\target\classes" />
<property name="build.lib.dir" value="${build.dir}\lib" />
<property name="build.report.dir" value="${build.dir}\report\${appname}_zlr" />
<property name="build.report.name" value="${appname}_zlr" />
<target name="junit and report" depends=""
description="run test and send report">
<delete dir="${build.report.dir}" />
<mkdir dir="${build.report.dir}" />
<junit printsummary="on" fork="true" showoutput="true">
<sysproperty key="file.encoding" value="GBK" />
<formatter type="xml" usefile="true" />
<classpath>
<fileset dir="${build.lib.dir}" includes="**\*.jar" />
<pathelement path="${build.class.dir}" />
</classpath>
<batchtest todir="${build.report.dir}">
<formatter type="brief" usefile="true"/>
<fileset dir="${build.class.dir}">
<include name="JD\jincai\ppt\testzhiyinlou.class"/>
</fileset>
</batchtest>
</junit>
<junitreport todir="${build.report.dir}">
<fileset dir="${build.report.dir}">
<include name="TEST-*.xml" />
</fileset>
<report format="frames" todir="${build.report.dir}" />
</junitreport>
</target>
</project>
下面进行讲解
先说明白,E:\work\TestAuto_Integration\src\main\java\JD\jincai\ppt\testzhiyinlou.java是我的机器的java文件路径,而class文件路径E:\work\TestAuto_Integration\target\classes\JD\jincai\ppt\testzhiyinlou.class
在build文件中,$这个美元符号是参数化的意思,下面对文件的参数化进行大概讲解
build.dir是指我们的文件的位置,一般是报告和其他的文件的相近路径,后文没有直接使用
build.class.dir是class文件的位置,在文中主要是
<fileset dir="${build.class.dir}">
<include name="JD\jincai\ppt\testzhiyinlou.class"/>
</fileset>
这两句使用了,也就是说,build.class.dir=class文件路径 减去 package JD.jincai.ppt这个class的相对路径,即:E:\work\TestAuto_Integration\target\classes\JD\jincai\ppt\testzhiyinlou.class-JD\jincai\ppt\testzhiyinlou.class=E:\work\TestAuto_Integration\target\classes
本质是指定运行时候的class方法的起点位置,理应在class文件的根目录,然后利用这里的include name这个参数,指选哪个class即可运行哪一个class,当需要运行多个class时候。可以用正则,*等表示也可以用多行表示,如下
<include name="JD\jincai\ppt\testzhiyinlou1.class"/>
<include name="JD\jincai\ppt\testzhiyinlou2.class"/>
<include name="JD\jincai\ppt\testzhiyinlou3.class"/>
build.lib.dir这个参数是运行代码时候所依赖的jar包所在位置(本文不讨论mvn依赖,只讨论最原始的juint框架运行),由于ant本身有一定的jar包所以一般执行ant的lib目录,再把项目所需要的jar包放在lib下即可执行,由于事例过于简单,无需额外jar包故无需添加
xml中classpath标签是指我们的jar包所在地点,而batchtest是指我们真正运行的@Test的文件路径
junitreport是juint报告阶段,使用的参数时build.report.name和build.report.dir,这两个参数直接指定了报告文件夹所在位置
以上便是我们的程序,其实在xml中的区别就是,ant针对juint框架有专门的标签,可以直接使用juint标签来做,同时也有juintreport来直接生成报告,下一篇随笔讲发报告的问题
java juint框架的windows自动化-自动运行juint程序简述的更多相关文章
- java testng框架的windows自动化-自动运行testng程序上篇
本文旨在让读者简单了解testng的自动运行 怎么说呢,在网上已经有了各个前辈进行代码演示以及分享,我力争说到点子上 接上文,之前讲的大部分是juint的自动化代码运行,从未涉及到testng,但是在 ...
- java testng框架的windows自动化-自动运行testng程序下篇
本文旨在让读者简单了解testng的自动运行 接上文https://www.cnblogs.com/xuezhezlr/p/9213456.html,文章大致把testng中比较特殊的两个xml形式说 ...
- java的windows自动化-自动运行java程序
那么在一些工具齐全并且已经有了一定的写好的java程序的情况下(环境变量和软件见上一章http://www.cnblogs.com/xuezhezlr/p/7718273.html),如何自动化运行j ...
- Atitit.Java exe bat 作为windows系统服务程序运行
Atitit.Java exe bat 作为windows系统服务程序运行 1. 使用SC命令+srvany.exe (不错,推荐)+net start1 1.1. First 创建一个java的运 ...
- webstorm git 怎么断开版本控制 webstorm git for windows 禁止 自动运行
也是无语啊,今天装了下最新版本的webstorm , 发现特别卡,老动不动就卡死, 看了下进程, 牛X 啊, git for windows 一直蹭蹭蹭的疯狂增长,一开始的一点到后来的庞然大物. ...
- NanoPC-T4/RK3399开发板Ubuntu FriendlyCore系统开机自动运行客户程序
RK3399开机自动运行客户程序 比如hellohello.c 交叉编译:aarch64-linux-gcc hello.c -o hello使用SecureCRT软件通过串口下载到开发板rz修改文件 ...
- java的mac自动化-自动运行java程序
本文旨在帮助读者介绍,如果一个测试工程师拿到了mac本,该如何在本地自动运行java代码 首先如图所示写下如下一段代码 package zlr;import org.junit.Test;public ...
- mpush 服务端配置 for windows 服务自动运行
mpush 服务端配置 以下安装部分是参照官方的步骤, 一.安装jdk1.8并配置环境变量 示例: http://www.cnblogs.com/endv/p/6439860.html 二.Wind ...
- 在Linux中以普通用户开机自动运行脚本程序
测试环境:CentOS6.5 管理员:root 普通用户:test1 实现目标:在Linux启动时,以普通用户test1自动运行位于根目录下的脚本程序test.py,该程序会在每次执行时自动向本地日志 ...
随机推荐
- 前端CSS的工程化——掌握Sass这四大特性就够了
初遇 CSS,一见倾心 记得刚遇见css的时候,咱像是见了美人儿一样,简直是爱不释手啊,简简单单写几行算不上代码的代码,就能做出这么漂亮的东西,这也成了咱前端之路的最初动力. 然而,随着项目体量和页面 ...
- nanomsg 如何写数据到PipelineDB
nanomsg:https://github.com/nanomsg/nanomsg PipelineDB:https://github.com/pipelinedb/pipelinedb nanom ...
- Codeforces 830C On the Bench
题意:给你n个数,问有多少种排列方式使得任意两个相邻的数的乘积都不是完全平方数 我好弱,被组合和数论吊着打... 首先我们可以把每个数中固有的完全平方数给分离出来,那么答案其实就只与处理后的序列相关. ...
- Android Toolbar 标题居中及字体样式自定义
首先找到 toolbar 所在xml布局文件,将toolbar控件放置在一个相对布局(RelativeLayout)中,然后设置toolbar的title为空(随便打几个空格即可): 然后在 tool ...
- [亲测]ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问
前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...
- Ansible - 简介和应用自动化基础实践
installAnsible简介和应用自动化基础实践 一.引入: 1.1 如官方定义,Ansible is The simplest way to automate apps and IT infr ...
- 移动端 cursor:pointer问题
之前一直没有注意过,为元素设置上cursor:pointer属性后,会导致元素点击时出现一个蓝色的背景. 为元素设置-webkit-tap-highlight-color: transparent;可 ...
- android 读取系统文件 wpa_supplicant
1,须要权限 <uses-permission android:name="android.permission.ACCESS_SUPERUSER" /> 2,下载 R ...
- win8安装mysql5.5最后配置没有反应
win8安装mysql5.5最后配置没有反应 win8下安装mysql5.5一路顺利,可是到最后一步配置mysql服务及登录password后.注冊服务并启动服务界面一直没有不论什么反应: 本来以为是 ...
- Python 练习冊,每天一个小程序
Python 练习冊,每天一个小程序 说明: Github 原文地址: 点击打开链接 Python 练习冊.每天一个小程序.注:将 Python 换成其它语言,大多数题目也试用 不会出现诸如「 ...