Travis CI邮件通知替代Ranorex原有邮件功能

006-email-logo

榨干Travis CI–邮件通知功能的巧用。

众所周知,Ranroex高版本有个Ranorex Automation Helpers功能,其中有个邮件发送模块。但是由于不可名状的原因,博主不能使用该模块利用本机发送邮件,所以一直在寻找相关替代品。

使用Travis CI自动构建和部署你的GitBook一文中介绍了Travis CI的相关内容,发现在添加邮件通知配置后,每次构建时,便可以接收邮件。所以考虑能不能把这点利用上,既然有了想法,那就开始干。

环境搭建

首先需要Ranorex环境和Git环境。

Ranorex环境

安装Ranorex Studio,客户端下载可以参见这个页面:Ranorex Pages

Git环境

  1. 安装Git Windows客户端

    Git_For_Windows_x64-蓝奏云
    Git_For_Windows_x86-蓝奏云

  2. Git环境的初始化

    可以参看我的这篇博文:Git不完全指南(一)– 初始化配置

    如果你实在不想阅读博文,只想利用现成的,那也行,但是Git客户端还是要装的。

    假设你不想手动配置Git环境,在这下载一键配置脚本。

    一键配置脚本:

    InitGitkey-百度云 密码: xd4w

    安装Git客户端后,将一键配置脚本-InitGitKey.bat和秘钥文件夹ssh放置同一目录下,双击脚本即可,如若看到下图所示,即为配置成功。

    003-InitGitKey

Ranroex集成Travis CI Send Email

自动提交脚本

复制以下代码另存为AutoCommit4TravisCI.bat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
::CODER BY taurus POWERD BY iBAT
Setlocal enabledelayedexpansion
@echo off

echo ==========================
echo mkdir AutoCommit Folder
echo ==========================
mkdir AutoCommit

echo ==========================
echo copy TravisCI config file
echo ==========================
copy .travis.yml AutoCommit

echo ==========================
echo enter Folder
echo ==========================
cd AutoCommit

echo ================================
echo generate README.md with cur time
echo ================================
for /f "tokens=1,2 delims=:" %%i in ('time/t') do set t=%%i%%j
set "curtime=%date:~0,4%%date:~5,2%%date:~8,2%%t:~0,4%%time:~6,2%"
echo %curtime%>README.md

echo ==========================
echo git init
echo ==========================
git init

echo ==========================
echo set remote repo url
echo ==========================
git remote add origin git@github.com:AutoTestEpoint/AutoCommit4TravisCI.git

echo ==========================
echo checkout new branch
echo ==========================
git checkout -b auto-commit

echo ==========================
echo add readme
echo ==========================
git add .

echo ==========================
echo commit msg
echo ==========================
git commit -am %computername%_AutoSendEmailByTravisCI


echo ==========================
echo push remote repo
echo ==========================
git push --force origin auto-commit


echo ==========================
echo del Folder
echo ==========================
cd ..

rd /q /s AutoCommit

Travis CI配置文件

将下面的邮箱修改为你接收邮件的邮箱账号,复制代码另存为.travis.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 指定通知的邮件,修改为你的邮箱,可以添加多个
notifications:
email:
recipients:
- baiduvip_crack@yeah.net
on_success: always # default: change
on_failure: always # default: always

# 指定进行构建的额分支
branches:
only:
- auto-commit

# 指定时区
before_install:
- export TZ='Asia/Shanghai'

# 新建文件件
script:
- mkdir Notification

# 部署
after_script:
- cp README.md ./Notification/
- cd ./Notification
- git init
- git config user.name "taylortaurus"
- git config user.email "taylortaurus0517@gmail.com"
- git add .
- git commit -m "Auto Inform By TravisCI With Build $TRAVIS_BUILD_NUMBER"
- git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master

# 指定环境变量
env:
global:
# Github Pages
- GH_REF: github.com/taylortaurus/AutoCommit

复制完上述代码,将两个文件放置同一目录下,可以先手动运行AutoCommit4TravisCI.bat,看是否能接收到邮件

调用运行bat的方法

项目中添加下述代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/// <summary>
/// 时间:2017-9-18
/// 作者:Taylor Taurus
/// 功能:运行bin\Debug\Tool\*.Bat,所以预先将相关文件的属性改为复制到输出目录
/// </summary>
/// <param name="BatFileFullName">bat完整名称</param>
public static void RunBat(string BatFileFullName)
{
Process proc = null;
string str=System.AppDomain.CurrentDomain.BaseDirectory;
str = str + @"Tool"; //bat的路径
try
{
string targetDir = string.Format(str); //bat所在文件夹路径
proc = new Process();
proc.StartInfo.WorkingDirectory = targetDir;
proc.StartInfo.FileName = BatFileFullName;
proc.StartInfo.Arguments = string.Format("10");
//proc.StartInfo.CreateNoWindow = true;
//proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;//这里设置DOS窗口不显示
proc.Start();
proc.WaitForExit();
}
catch (Exception ex)
{
Console.WriteLine("Exception Occurred :{0},{1}", ex.Message, ex.StackTrace.ToString());
}
}

至此,终于可以在Ranorex愉快得借用Travis CI之手发邮件啦!!!

圈住圈九酱 wechat
♉微信扫码关注公众号,有好玩的呦♉
☛看官,求打赏☚