对于Web应用开发,测试中有一个很重要的测试是Functional Test(或者叫Integration Test)。
Functional Test除了需要相关的库以外还需要一个Driver,可以是Chrome,Firefox等等。
因为并不是每一个开发机器或者CI服务器都有浏览器的,所以保证测试的可用性是相当重要的。
常用的方法是将浏览器提前下载,放置在项目目录中,纳入版本管理。这样测试的运行就可以直接使用。
但是这种方法有两个问题:
- 将大量文件纳入了版本管理中
- 对于不同平台还需要下载不同平台的Driver
其实还有一个办法就是让构建工具自动下载,下载的时候可以根据平台来下载指定版本。这样即提升了易用性,也降低了切换难度。
这里以phantomjs为例,来看看怎么让Gradle去下载平台相关的phantomjs。
首先明确phantomjs的下载地址,在bitbucket上,https://bitbucket.org/ariya/phantomjs/downloads。
文件名是phantomjs+版本号+平台。
首先对于平台的判断使用commons-io库来操作。
import org.apache.tools.ant.taskdefs.condition.Os
buildscript {
repositories {
jcenter()
}
dependencies {
classpath"commons-io:commons-io:2.+"
}
}
判断代码如下:
def osFilenamePart
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
osFilenamePart ="windows.zip"
}elseif (Os.isFamily(Os.FAMILY_MAC)) …