本文旨在帮助读者介绍,如果一个测试工程师拿到了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程序的更多相关文章

  1. java的windows自动化-自动运行java程序

    那么在一些工具齐全并且已经有了一定的写好的java程序的情况下(环境变量和软件见上一章http://www.cnblogs.com/xuezhezlr/p/7718273.html),如何自动化运行j ...

  2. java testng框架的windows自动化-自动运行testng程序上篇

    本文旨在让读者简单了解testng的自动运行 怎么说呢,在网上已经有了各个前辈进行代码演示以及分享,我力争说到点子上 接上文,之前讲的大部分是juint的自动化代码运行,从未涉及到testng,但是在 ...

  3. java juint框架的windows自动化-自动运行juint程序简述

    在京东混了一个月,基本有点稳定了,觉得也有所余力了现在,继续写博客吧,不过以后更新也许不是那么频繁了 本人使用的是juint框架,对开发是一个单元测试的java框架,但是对测试而言是java的基石之一 ...

  4. java testng框架的windows自动化-自动运行testng程序下篇

    本文旨在让读者简单了解testng的自动运行 接上文https://www.cnblogs.com/xuezhezlr/p/9213456.html,文章大致把testng中比较特殊的两个xml形式说 ...

  5. NanoPC-T4/RK3399开发板Ubuntu FriendlyCore系统开机自动运行客户程序

    RK3399开机自动运行客户程序 比如hellohello.c 交叉编译:aarch64-linux-gcc hello.c -o hello使用SecureCRT软件通过串口下载到开发板rz修改文件 ...

  6. Mac 终端命令运行java

    链接地址:http://www.cnblogs.com/wangrui-techbolg/archive/2012/12/29/2839047.html 由于mac已经装好java环境,所以直接课运行 ...

  7. Java基础教程——命令行运行Java代码

    视屏讲解:https://www.bilibili.com/video/av48196406/?p=4 命令行运行Java代码 (1)使用记事本新建文本文件[Test.java]. 注意,默认状态下W ...

  8. 在Linux中以普通用户开机自动运行脚本程序

    测试环境:CentOS6.5 管理员:root 普通用户:test1 实现目标:在Linux启动时,以普通用户test1自动运行位于根目录下的脚本程序test.py,该程序会在每次执行时自动向本地日志 ...

  9. mac通过wine运行windows程序(将文件关联到windows程序notepad++)

    windows程序功能强大且已经习惯使用了,用mac总感觉不给力,例如记事本工具Notepad++就非常优秀.下面介绍如何在mac系统下通过wine来安装使用notepadd++程序. 1.安装win ...

随机推荐

  1. Calendar使用方法

    Calendar类的静态方法getInstance()可以初始化一个日历对象: Calendar now = Calendar.getInstance(); 可以使用下面三个方法把日历定到任何一个时间 ...

  2. 【转】Matlab中的括号()[] {}

    Matlab中经常会用到括号去引用某Array或者是cell的内容,但三者有什么具体区别呢?] []

  3. Matlab实用技巧

    1  Matlab Cell 编程模式 在一个长长的脚本m文件中,可能需要对其中的一段反复修改,查看执行效果,这时,cell模式就非常有用了.cell模式相当于将其中的代码拷贝到命令窗口中运行.两个% ...

  4. 2018-01-28-TF源码做版本兼容的一个粗暴方法

    layout: post title: 2018-01-28-TF源码做版本兼容的一个粗暴方法 key: 20180128 tags: IT AI TF modify_date: 2018-01-28 ...

  5. Python笔记001-----简介及常用的库

    1.Python是一种解释性语言,大部分代码要比编译型语言(如C++,java等)运行要慢点多.2.对于高并发,多线程的应用程序而言,Python并不是理想语言,python有全局解释器锁(Globa ...

  6. 1.Tarball软件make与makefile详解(还需要补充)

    *通常自己安装的软件放在 /usr/local/软件名   中,而将源文件放在/usr/local/src *为安装到单独目录的软件之 man page 加入 man path 搜寻: 如果你安装的软 ...

  7. JAVA并发编程学习笔记------对象的可见性及发布逸出

    一.非原子的64位操作: 当线程在没有同步的情况下读取变量时,可能会得到一个失效值,但至少这个值是由之前某个线程设置的值,而不是一个随机值,这种安全性保证被称为最低安全性.最低安全性适用于绝大多数变量 ...

  8. Mysql基础安装,初视篇

    mysql 跟所有的数据库软件一样分为  服务端和客户端: 下载:在官网里面选择 download 社区版本,mysql,社区版本 安装: win环境下: 第一步:解压文件出来 第二步:在bin文件下 ...

  9. SSD写入放大问题[转]

    原文地址:http://blog.csdn.net/cywosp/article/details/29812433 之前在SSD(Solid State Drive)上设计并实现缓存系统用于存储数据块 ...

  10. demo说明

    访问http://192.168.90.63:30111/face_mark/, 会看到上图的界面. 下面简单说下如何使用这个demo. 一.选择选择同一个人不同角度的五张图. 选中了五张图片.此时任 ...