51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1887|回复: 1
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2017-7-18 14:44:04 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
WebDriver 是一个庞大的工程。如果我们试着把所有的东西都放在一个单独的构建文件里,它最终会变得难于管理。我们知道会这样。因为我们已经尝试过了。所以我们把单独的 Rakefile 分成一系列 build.desc 文件。它们描述构建的一部分。
让我们看一个 build.desc 文件。这是测试主要的 build.desc 部分:
CODE:
  1. <font size="4">java_test(name = "single",
  2. srcs = [
  3. "SingleTestSuite.java",
  4. ],
  5. deps = [
  6. ":tests",
  7. "//java/server/src/org/openqa/selenium/server",
  8. "//java/client/test/org/openqa/selenium/v1:selenium-backed-webdriver-test",
  9. "//java/client/test/org/openqa/selenium/firefox:test",
  10. ]  ])</font>
复制代码
它突出了大部分关键思想。首先,它声明了 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 都需要下面属性

常用属性

java_library
  • Output: 如果“ srcs ”属性文件被设置, JAR 文件以“ name ”属性被命名。
  • 隐含 Targets: run ( 如果 “main” 属性指定 ), project, project-srcs, uber, zip
  • 必须的 Attributes: “ name ”并至少有一个 “srcs” 或 “deps”

java_test


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

  • TA的每日心情
    无聊
    2024-9-19 09:07
  • 签到天数: 11 天

    连续签到: 2 天

    [LV.3]测试连长

    2#
    发表于 2017-7-18 15:25:49 | 只看该作者
    很棒!我们的楼主
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-24 06:50 , Processed in 0.069196 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表