本文旨在幫助讀者介紹,若是一個測試工程師拿到了mac本,該如何在本地自動運行java代碼html
首先如圖所示寫下以下一段代碼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>linux
</project>web
上文的ant要點和以前介紹的windows能夠說很相近,因此再也不贅述了,有興趣和疑問的同窗能夠去瀏覽http://www.cnblogs.com/xuezhezlr/p/7725301.htmlshell
這裏要介紹的是mac一個特色,就是java的安裝apache
若是使用正常的java安裝,會出現一個框而後自動安裝到系統的硬盤中,不過有個問題是不能輕易去訪問那個路徑,因此對它進行操做很困難windows
而ant調試過程當中能夠看到,全程沒有導入java的環境變量,只是依靠本地的java變量來實現的mac因此,對本機的java變量的控制變得異常重要,因此https://support.apple.com/kb/DL1572?locale=en_US&viewlocale=en_US這是我強烈推薦的java安裝地址,建議使用這個進行安裝tomcat
與windows比較大的區別是,windows使用.bat文件來執行ant命令,而mac則是使用.sh文件來執行ant,這也是mac筆記本比較相似linux的地方bash
下面是本地執行結果app
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若是有成果就發出來