用psake来简化自动化脚本的构建

psake是一个集成了PowerShell的用来创建自动化脚本的工具,其2.01版本集成了PowerShell2.0。Ayende Rahien正使用它来创建Rhino工具。psake项目的拥有者James Kovacs向我们解释了该工具最新版本的改进之处:

psake最新版本通过使用构建脚本中的PowerShell语法,避免了与可执行的XML文件相关的尖括号标识(<>)。psake借鉴了rake(即Ruby中的make)和bake(即Boo中的make)的语法结构,但它更容易用来编写脚本,因为它还利用了使用者已知的命令行编程知识。
除了兼容PS2.0之外,psake2.01还被改写成了一个PS模块,这样做的主要好处是:

所创建编译的脚本不需要知道psake安装在哪里,它们只需要调用Invoke-psake方法就可以执行了;
封装性:不再需要全局变量,因为除了显示地导出之外,对于某个模块来说它们可以被视为私有的;
如果需要的话,可以卸载模块来除去内存中所有的代码和变量。
2.01版本的其他改进之处还有:

采用了与之前不同的编码风格;
使用Try/Catch代替"Trap"语句;
除去了"exec"函数;
现在使用者可以为一项任务定义前置和后置动作;
现在使用者可以定义任务名称的格式;
现在使用者可以定义一个"TaskSetup"方法,此方法将在每个任务开始之前被执行(从NUnit中借鉴而来);
现在使用者可以定义一个"TaskTearDown"方法,此方法将在每个任务结束之后被执行(也是从NUnit中借鉴而来);
创建了名为"psake_buildSucceeded"的全局变量,当编译成功后此变量将被设置为true。脚本可以通过检查此变量,来判断是否编译成功;
在Run-Psake时还加入了一个"$noexit"开关变量,当此开关打开时任何函数执行结束前都不会调用exit()方法,这样使用者就可以在PS 窗口不被关闭的条件下,通过命令行来测试你所创建的脚本了。(此处默认的操作是,当一个脚本运行失败时,它将会调用exit(1)方法,这样在调用的代码中就可以判定此脚本是成功或失败了)
psake-buildTester.ps1脚本必须做一些小改动才能调用Invoke-psake方法.
在.\examples目录中加入了更多的示例来演示后置条件(POST conditions),前置和后置动作(PRE and POST Actions)以及其他(新特性)的用法。
Ayende Rahien写了关于使用psake来创建他的Rhino工具psake to build his Rhino Tools的相关文章。这个项目起初使用了一种十分复杂的基于NAnt的编写工具,仅仅是最初的尝试,开发者就写出了海量的代码,这使得他们感到惊恐万分。经过对使用 Rake或Bake来开发的可行性评估后,Rahien转向使用psake并仅用了50行代码就解决了工作。

时间: 2024-12-24 21:00:32

用psake来简化自动化脚本的构建的相关文章

让开发自动化:除掉构建脚本中的气味

当描述代码之类的东西时,我不喜欢 "气味(smell)"这个词.因为用拟人的手法来谈论比特和字节往往令人觉得很怪异.并不是说"气味"这个词不能准确地反映出某种表明代码可能有错误的症状,只是我觉得这样听起来很滑稽.然而,我依然选择再次用这种令人厌烦的方式来描述软件构建,坦白说,这是因为这些年我见过的很多构建脚本都散发着难闻的气味. 在创建构建脚本时,即使是伟大的程序员也常常会遇到困难.就好像最近才学会如何编写程序性 代码似的 -- 他们还会编写庞大的单块构建文件.通过

求助IronPyhton测试CS架构的自动化脚本实例

问题描述 求助IronPyhton测试CS架构的自动化脚本实例 初学者,完全找不关于IronPyhton自动化测试脚本实例,只要开发实例,求助IronPyhton测试CS架构的自动化脚本实例,哪怕是一个简单的登录也可以,就是不知道应该调用哪些函数 ,如何定位一个文本框输入数据,定位按钮等,谢谢

自动化测试-RFS中上传文档自动化脚本,集成在jenkins中执行不通过,不知道怎么解决?

问题描述 RFS中上传文档自动化脚本,集成在jenkins中执行不通过,不知道怎么解决? RFS中web上传文档(非标准上传控件)自动化脚本,集成在jenkins里运行,脚本是执行通过了,但实际图片并没有上传成功? 说明:上传图片脚本用到了AutoItLibrary库,执行过程中需要打开windows选择文件界面,但jenkins中运行脚本的语句pybot是在后台执行,并不会打开界面,所以导致上传图片不成功.

论漏洞和自动化脚本的区别

什么是漏洞? 我先抄一段百度百科. 漏洞是在硬件.软件.协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统. 摘取其中的三个关键点: 1.系统缺陷 2.能被未授权利用 3.利用后能达到某种目的或效果 我们来举几个利用漏洞买月饼的思路(漏洞实例与截图均来自于互联网): 1.篡改金额 实例:某平台订单支付时的总价未验证漏洞(支付逻辑漏洞) 很多系统在设计的时候,未对商品的价格进行校验.导致你提交的购买的http包内说这个商品价格多少钱,系统就会认为这个商品多

Rational Performance Tester中实现条件循环的自动化脚本示例

随着需求的不断变化,自动化正在变得日益复杂.要适应这一情况,我们需要以更加智能的方式开发自动化框架.决策控制是实现复杂自动化的关键概念之一. 在 IBM® Rational® Performance Tester 中,您可以将部分测试定义为 条件循环,也就是指运行指定次数的运行.您可以根据次数.时间 设置循环的持续时间,或将其设置为无限 次.但是,软件没有提供相应的方法来动态设置循环的目标值.Rational Performance Tester 初学者可能没有样例代码来迅速上手.因此,本文的目

同步数据库自动化脚本

同步数据库自动化脚本 #!/bin/sh  www.bitsCN.com read -p "Please keyin your ssh host:" -t 30 host_ip read -p "Please keyin your ssh user:" -t 30 username read -p "Please keyin your ssh pass:" -t 30 password read -p "Please keyin you

photoshop动作自动化脚本语言教程

自动化对每个设计师的工作来说是很有用的.它可以在重复的任务上节省宝贵的时间,还能够帮我们更快捷.更容易的解决一系列问题. 你可以使用photoshop的动作来使工作流程自动化,这是很流行的,大多数人都知道并且已经在使用的方法.今天,我们将介绍给你一种高级的自动化技巧:脚本语言.所有的这一切仅仅需要你有一点点关于JavaScript的基本知识,这对于我们中的一些网页设计师往往都是具备的. 我很多年前就知道Photoshop的脚本语言,但是我几个月前才开始决定研究它.我忽视了它是因为我认为那是聪明的

基于 IBM SPSS Data Collection 自动化脚本的数据处理解决方案

背景介绍:为什么在数据采集之后需要数据处理 Data Collection 的主要功能是数据收集.它以问卷为基础,支持多种方式包括 WEB.CAPI.CATI 来收集数据, 并且支持以多种数据格式存储来满足各种各样的用户需求,主要涵盖以下工具: 典型的 Data Collection 业务流程一般是这样的: 通过 Interview Server / Professional / Interviewer / Paper / Scan,可以将被访者的问卷答案收集到数据库中: 继而在 Profess

使用Shell脚本自动构建OpenSSL的CA等

其实此前也写过,但当时仅实现了自动创建CA自签发证书等文件,近来时间颇为宽裕,加上这个东东的用处又几乎无所不在,因此,又在其基础上做了些修修补补. 实现功能: 1.全自动创建CA私有机构和测试证书一套 2.在已有的CA自签发证书或测试证书的基础上,进行几项调整或重新创建或给其他申请签发等 考虑到代码略多,因此本文先做详细使用介绍,然后再粘贴代码及上传附件,心急代码的同学,可以直接向下拉查看或下载附件. 环境: rhel5.8 32bit  openssl为光盘yum源安装 用法: command