selenium webdriver学习 19 – 我们的构建文件CrazyFunBuild (译)

玩技站长 Auto测试评论612字数 970阅读3分14秒阅读模式
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)
[转自网络]

文章源自玩技e族-https://www.playezu.com/10928.html 文章源自玩技e族-https://www.playezu.com/10928.html

 
匿名

发表评论

匿名网友
确定

拖动滑块以完成验证