java的mac自动化-自动运行java程序
本文旨在帮助读者介绍,如果一个测试工程师拿到了mac本,该如何在本地自动运行java代码
首先如图所示写下如下一段代码
package zlr; import org.junit.Test;
public class zlrshiyan {
@Test
public void test123() throws Exception{
System.out.print (123);
}
}
所在文件的路径是/Users/zlr/IdeaProjects/zlr/src/zlr,如下图,本地代码也可以正常运行
这时我们想到了和之前编写的windows一样,mac是否可以像windows一样使用ant来自动执行呢?
1本地执行java程序代码化
mac作为一款比windows更加贴近linux的操作系统,其定时任务当然是可以执行的,本文来简单示范一下mac的定时任务
首先第一步要做的事是使用ant来执行上文的java程序,使用的ant是下文的ant代码
<?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="/Users/zlr/Desktop/autoTest" />
<property name="build.class.dir" value="${build.dir}/target/production/zlr/" />
<property name="build.lib.dir" value="${build.dir}/lib" />
<property name="build.report.dir" value="${build.dir}/report/${appname}_jenkins" />
<property name="build.report.name" value="jenkins" />
<property name="build.report.ip" value="10.10.81.108" />
<property name="build.report.remote" value="E:/apache-ant-1.9.4/bin/apache-tomcat-6.0.30/webapps/report" />
<target name="junit and report" depends=""
description="run test and send report">
<!-- 先删除原有report文件夹 -->
<delete dir="${build.report.dir}" />
<!-- 再创建新report文件夹 -->
<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="*" />
<pathelement path="${build.class.dir}" />
</classpath>
<batchtest todir="${build.report.dir}">
<fileset dir="${build.class.dir}">
<include name="zlr/zlrshiyan.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>
上文的ant要点和之前介绍的windows可以说很相近,所以不再赘述了,有兴趣和疑问的同学可以去浏览http://www.cnblogs.com/xuezhezlr/p/7725301.html
这里要介绍的是mac一个特点,就是java的安装
如果使用正常的java安装,会出现一个框然后自动安装到系统的硬盘中,不过有个问题是不能轻易去访问那个路径,所以对它进行操作很困难
而ant调试过程中可以看到,全程没有导入java的环境变量,只是依靠本地的java变量来实现的mac所以,对本机的java变量的控制变得异常重要,所以https://support.apple.com/kb/DL1572?locale=en_US&viewlocale=en_US这是我强烈推荐的java安装地址,建议使用这个进行安装
与windows比较大的区别是,windows使用.bat文件来执行ant命令,而mac则是使用.sh文件来执行ant,这也是mac笔记本比较类似linux的地方
下面是本地执行结果
2使用crontab来定时执行代码
在手动执行后自然我们想到了自动执行代码,由于mac在内核上与linux很相近,所以这里介绍的是在linux上比较盛行的crontab来定时执行java代码
输入crontab -e,然后在出现的地方输入我们的下面一行文字并保存
00 21 * * * source /Users/zlr/.bash_profile && /Users/zlr/Desktop/autoTest/runAnt.sh
保存记住,要使用wq!来做,这里讲一下这个语句
00 21 * * *这几位是表示时间的,意思是每个满足条件的时间点执行后面那一行shell语句
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
而这里的*是指这一种检索条件可以忽略,比如上文中只有前两列是不是*,那么意思就是每天的晚上9点执行,http://blog.csdn.net/h514476785j/article/details/52512354这里有比较详细的解释
但是java还一个特点就是环境变量,因此后面的语句是source /Users/zlr/.bash_profile && /Users/zlr/Desktop/autoTest/runAnt.sh
这句话的意思是,先执行source /Users/zlr/.bash_profile加载环境变量,在执行/Users/zlr/Desktop/autoTest/runAnt.sh来执行ant命令,中间用&&符号来链接,另一种方式是在runant中写多条shell语句来执行
上文就是mac的简单自动化了,各位加油,我研究一下jenkis如果有成果就发出来
java的mac自动化-自动运行java程序的更多相关文章
- java的windows自动化-自动运行java程序
那么在一些工具齐全并且已经有了一定的写好的java程序的情况下(环境变量和软件见上一章http://www.cnblogs.com/xuezhezlr/p/7718273.html),如何自动化运行j ...
- java testng框架的windows自动化-自动运行testng程序上篇
本文旨在让读者简单了解testng的自动运行 怎么说呢,在网上已经有了各个前辈进行代码演示以及分享,我力争说到点子上 接上文,之前讲的大部分是juint的自动化代码运行,从未涉及到testng,但是在 ...
- java juint框架的windows自动化-自动运行juint程序简述
在京东混了一个月,基本有点稳定了,觉得也有所余力了现在,继续写博客吧,不过以后更新也许不是那么频繁了 本人使用的是juint框架,对开发是一个单元测试的java框架,但是对测试而言是java的基石之一 ...
- java testng框架的windows自动化-自动运行testng程序下篇
本文旨在让读者简单了解testng的自动运行 接上文https://www.cnblogs.com/xuezhezlr/p/9213456.html,文章大致把testng中比较特殊的两个xml形式说 ...
- NanoPC-T4/RK3399开发板Ubuntu FriendlyCore系统开机自动运行客户程序
RK3399开机自动运行客户程序 比如hellohello.c 交叉编译:aarch64-linux-gcc hello.c -o hello使用SecureCRT软件通过串口下载到开发板rz修改文件 ...
- Mac 终端命令运行java
链接地址:http://www.cnblogs.com/wangrui-techbolg/archive/2012/12/29/2839047.html 由于mac已经装好java环境,所以直接课运行 ...
- Java基础教程——命令行运行Java代码
视屏讲解:https://www.bilibili.com/video/av48196406/?p=4 命令行运行Java代码 (1)使用记事本新建文本文件[Test.java]. 注意,默认状态下W ...
- 在Linux中以普通用户开机自动运行脚本程序
测试环境:CentOS6.5 管理员:root 普通用户:test1 实现目标:在Linux启动时,以普通用户test1自动运行位于根目录下的脚本程序test.py,该程序会在每次执行时自动向本地日志 ...
- mac通过wine运行windows程序(将文件关联到windows程序notepad++)
windows程序功能强大且已经习惯使用了,用mac总感觉不给力,例如记事本工具Notepad++就非常优秀.下面介绍如何在mac系统下通过wine来安装使用notepadd++程序. 1.安装win ...
随机推荐
- Linux指令--ln
ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在 ...
- linkin大话设计模式--桥接模式
linkin大话设计模式--桥接模式 桥接模式是一种结构化模式,他主要应对的是:由于实际的需要,某个类具有2个或者2个以上维度的变化,如果只是使用继承将无法实现功能,或者会使得设计变得相当的臃肿.我们 ...
- awk之FIELDWIDTHS字段宽度
$ cat file 1234567890 $ awk -vFIELDWIDTHS="1 2 3 4 5" -vOFS="|" 'NF=NF' file 1|2 ...
- Java多线程优化方法及使用方式
一.多线程介绍 在编程中,我们不可逃避的会遇到多线程的编程问题,因为在大多数的业务系统中需要并发处理,如果是在并发的场景中,多线程就非常重要了.另外,我们在面试的时候,面试官通常也会问到我们关于多线程 ...
- File类中的list和listFiles方法
File类中的list和listFiles方法 list()方法是返回某个目录下的所有文件和目录的文件名,返回的是String数组 listFiles()方法是返回某个目录下所有文件和目录的绝对路径, ...
- wpf datagrid row height 行高自动计算使每行行高自适应文本
wpf 的datagrid的行高 要么是Auto,要么是定值:但会带来麻烦就是每行行高都一样. 当需要按内容(主要是wrap 换行的textbox或textblock)来动态调整行高的时候,需要用到d ...
- 关于document.body.scrollTop与documentElement.scrollTop
遇到document.body.scrollTop值为0的问题 今天在写一个小demo的时候,使用滚动条,我用document.body.scrollTop获取滚动条的位置,但是很奇怪的发现在谷歌上获 ...
- Jedis/JedisPool和Redis数据类型与特性
1.介绍Jedis Jedis 是 Redis 的 java 版本客户端,使用Jedis可以连接 Redis的数据库,Jedis连接方式有三种Jedis/JedisPool 连接.ShardedJed ...
- (转)Elasticsearch 5 Ik+pinyin分词配置详解
今天以这篇文章结束同城旅游网的面试,正好面试官也问到站内检索,可以尝试一下这篇文章介绍的方法.Elasticsearch 5 Ik+pinyin分词配置详解
- bzoj 4823: [Cqoi2017]老C的方块 [最小割]
4823: [Cqoi2017]老C的方块 题意: 鬼畜方块游戏不解释... 有些特殊边,有些四个方块组成的图形,方块有代价,删掉一些方块使得没有图形,最小化代价. 比较明显的最小割,一个图形中必须删 ...