selenium webdriver学习(十九)-------我们的构建文件CrazyFunBuild (译)

原文:CrazyFunBuild

WebDriver 是一个庞大的工程。如果我们试着把所有的东西都放在一个单独的构建文件里,它最终会变得难于管理。我们知道会这样。因为我们已经尝试过了。所以我们把单独的 Rakefile 分成一系列 build.desc 文件。它们描述构建的一部分。

让我们看一个 build.desc 文件。这是测试主要的 build.desc 部分:

java_test(name = "single",
  srcs = [
    "SingleTestSuite.java",
  ],
  deps = [
    ":tests",
    "//java/server/src/org/openqa/selenium/server",
    "//java/client/test/org/openqa/selenium/v1:selenium-backed-webdriver-test",
    "//java/client/test/org/openqa/selenium/firefox:test",
  ]  ])

 

它突出了大部分关键思想。首先,它声明了 target, 在这种情况下有一个单独的 java_test target. 每一个 target 有一个 name 属性。

 

Target Names

Build.desc 文件的位置和名字相结合用来产生 rake 任务。所有的任务名字是以“ // ”为前辍,后面跟前所包含的 build.desc 文件相对于 Rakefile 的目录路径,然后是一个“:”,最后是 build.desc 里面 target 的名字。看一个例子就很容易理解:)

 由此 产生的 rake 任务例子 //java/client/test/org/openqa/selenium:single

简写 Target Names

作为一种快捷方式,如果一个 target 是以包涵在 build.desc 文件的目录命名的,你可以省略 rake 任务名字冒号后 的部分。这样 //java/server/src/org/openqa/selenium/server 等同于 //java/server/src/org/openqa/selenium/server:server .

隐含的Targets

构建规则支持隐含的 targets, 并提供正常构建 target 一个相关的扩展。例子包括生成源代码的档案,或者运行测试。这些通过附加一个冒号和隐含的 target 的名字给构建规则的全称而得到声明。这样我们可以使用 "//java/client/test/org/openqa/selenium:single:run" 来运行 tests

 

 下面 描述的每一个规则都有一个和他们相关的隐含 target.

Outputs

每一个 target 在“ build.desc ”文件中指定只生成一个唯一的输出。这很重要。请注意它。一般,所有的输出文件以对应的任务名被放在 build 目录下。如: "//java/org/openqa/selenium/server" 会以这样输出 "build/java/org/openqa/selenium/server.jar" 建规则应该输出名字和它们生成文件的位置。

 

Dependencies

看一下在上面“ single target 里的“ deps ”部分。“ tests ”是指在当前“ build.desc ”文件下的一个 target, 在这种情况下,它是指上面的“ java_library ”。你可以看出它将涉及多个全路径。例如 "//java/server/src/org/openqa/selenium/server" 这涉及在一个crazy fun build.desc 文件里 面的 另一个target

 

Browsers

Py_test js_test 规则对多浏览器运行相同的tests 有特殊的处理。相关的特殊浏览器meta 信息放在 rake-tasks/browsers.rb 中。一般在 target 名字后追加 _browsename (浏览器名字)来使用它 ; 如果没有 _browsename 后辍,那 tests 将在所有浏览器中运行。

 

举个例子,如果我们有一个 js_test 规则 //foo/bar, 我们将通过 target //foo/bar_ff:run firefox 中运行或者我们可以通过 target //foo/bar:run 对所有浏览器有效。

 

Build Targets

   一个你能使用的有效 targets 简单描述。

Common Attributes

所有构建 target 都需要下面属性

属性名字

类型

含意

Name

string

用来生成 rake target 和(常常)产生目录的名字

 

常用属性

属性名字

类型

含意

Srcs

array

为这一 target 而构建原始代码

Deps

array

这一 target 的先决条件

 

java_library

l  Output: 如果“ srcs ”属性文件被设置, JAR 文件以“ name ”属性被命名。

l  隐含 Targets: run ( 如果 "main" 属性指定 ), project, project-srcs, uber, zip

l  必须的 Attributes: name ”并至少有一个 "srcs" "deps"

java_test

属性名称

类型

含意

Deps

Array

同上

Srcs

Array

同上

Resources

Array

 

 

 

 

 

....(下面的和上面的都差不多就不译了,:P)

猜你喜欢

转载自jarvi.iteye.com/blog/1560701