`

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)

分享到:
评论

相关推荐

    selenium webdriver 学习

    1.10 selenium webdriver学习(十)------------如何把一个元素拖放到另一个元素里面 . . . . . . . . . . .31 1.11 selenium webdriver学习(十一)------------如何等待页面元素加载完成 . . . . . . . . . . . . ...

    ruby+selenium-webdriver测试--第一个例子源代码

    在这个“ruby+selenium-webdriver测试--第一个例子源代码”中,我们将探讨如何使用Ruby和Selenium-Webdriver实现自动化测试的初步步骤。 首先,我们需要安装必要的库。确保已经安装了Ruby,并通过RubyGems来安装...

    WebtestRecorder插件---Selenium Webdriver脚本录制工具--For Java

    WebtestRecorder插件是一款强大的自动化测试工具,专为Java开发者设计,它利用Selenium WebDriver库来简化Web应用程序的脚本录制和回放过程。这款工具极大地提升了测试效率,特别是对于那些需要频繁进行UI自动化测试...

    selenium-server-standalone-4.0.0-alpha-2.zip

    描述中的内容是空的,但我们可以基于标题推断,这个压缩包可能包含了运行 Selenium Server Standalone 所需的文件。Selenium Server Standalone 提供了一个中心化的服务,可以接收和转发来自客户端(如 WebDriver)...

    selenium-java-4.0.0-alpha-6_javaselenium_

    标题 "selenium-java-4.0.0-alpha-6_javaselenium_" 指的是 Selenium 的一个 Java 版本的软件包,具体是 4.0.0 的第六个 Alpha 版本。Selenium 是一个广泛使用的自动化测试工具,主要用于 web 应用程序的测试。它...

    selenium-server-standalone-2.40

    通过运行这个文件,你可以启动Selenium服务器,并通过WebDriver API或者旧的RC接口与之交互,执行自动化测试。 3. **selenium-java-2.40.0-srcs.jar**: 这个文件包含了Selenium Java客户端驱动的源代码。这对于...

    selenium-webdriver介绍PPT

    selenium-webdriver原创selenium-webdriver原创selenium-webdriver原创selenium-webdriver原创

    Selenium.WebDriver.4.0.0-alpha02.nupkg

    Selenium.WebDriver.4.0.0-alpha02.nupkg,Selenium.WebDriver 4.0,Selenium is a set of different software tools each with a different approach to supporting browser automation. These tools are highly ...

    selenium-server-standalone-2.53.1.jar

    selenium-server-standalone-2.53.1.jar用于支持selenium webdriver的开发,也可用于分布式测试连接

    selenium-java-2.44.0、selenium-java-2.44.0-srcs、selenium-server-standalone-2.44.0

    首先,我们来了解一下 `selenium-java-2.44.0.jar`。这是一个预编译的Java库,其中包含了Selenium WebDriver的Java绑定。WebDriver是Selenium的一个核心部分,它提供了一个编程接口,允许测试脚本直接控制浏览器。...

    Selenium WebDriver实战宝典(吴晓华)

    本书是一本从入门到精通模式的Selenium WebDriver实战经验分享书籍。全书共分为四个部分:第1部分基础篇主要讲解自动化测试相关的基础理论、WebDriver 环境安装、单元测试工具的使用方法以及 WebDrvier的入门使用...

    selenium+webdriver学习文档

    "selenium+webdriver学习文档" 本文档主要介绍了使用 Selenium+WebDriver 进行自动化测试的学习方法,从基础到精通的学习方法。下面我们将对标题、描述、标签和部分内容进行详细的解释。 标题:selenium+webdriver...

    selenium-server-standalone-2.45.0和selenium-java-2.45.0(含srcs)

    总结起来,"selenium-server-standalone-2.45.0" 和 "selenium-java-2.45.0(含srcs)" 提供了Selenium的核心组件,支持Java环境下的WebDriver自动化测试,同时包含了源码以便于深入学习和定制。它们是Web应用自动化...

    Selenium WebDriver Practical Guide-Code

    通过深入研究这个压缩包中的代码示例,学习者不仅可以理解Selenium WebDriver的工作原理,还能掌握如何在实际项目中应用这些知识,提升自动化测试的技能。同时,这也有助于理解和调试测试脚本,解决在自动化测试过程...

    selenium-server-standalone-2.44.0.jar

    selenium-server-standalone-2.44.0, selenium最新服务器,

    selenium webdriver+chrome插件.zip

    【标题】"selenium webdriver+chrome插件.zip" 涉及的核心知识点是Selenium WebDriver,特别是它在Chrome浏览器中的应用以及与Firefox的交互。这个压缩包包含了Selenium IDE的Chrome插件,以及对应的WebDriver驱动...

    selenium-server-standalone-3.9.1.rar

    "selenium-server-standalone-3.9.1.rar" 文件包含了Selenium Grid 的独立服务器版本,适用于3.9.1这个高版本。Selenium Grid 是Selenium工具集中的一个重要组成部分,它允许我们进行分布式自动化测试,提高测试效率...

    ruby+selenium-webdriver测试--多个测试用例源代码

    Selenium-Webdriver是Selenium项目的一部分,它提供了与多种浏览器(如Chrome、Firefox、Edge等)的接口,使我们能够在实际的浏览器环境中运行自动化测试。在Ruby中,我们需要先安装`selenium-webdriver`库,可以...

Global site tag (gtag.js) - Google Analytics