使用 Ant 驅動 Selenium
Selenium 的偉大之處在于它是在考慮了 CI 的基礎上從頭創建的,因為你能在像 Ant 那樣的構建工具中運行 Selenium。此外,由于框架設計者的高瞻遠矚,如果任何 Selenium 接受測試失敗,您也可以讓整個構建失敗。例如,清單 7 展示了一個 Ant 任務,該任務使用 Selenium 遠程控制服務器在一個 Web 應用程序中執行一系列表格驅動測試:
清單 7. 使用 Ant 運行 Selenium
<?xml version="1.0" encoding="iso-8859-1"?>
<project name="functional-tests" default="run-selenium-tests" basedir=".">
<property file="${basedir}/selenium.properties"/>
<import file="${basedir}/common-environment.xml"/>
<property name="acceptance.test.lib.dir"
value="${functional.test.dir}" />
<property name="firefox" value="*firefox" />
<property name="base.url"
value="http://${web.host.name}:${web.port}" />
<property name="acceptance.test.list.dir"
value="${functional.test.dir}" />
<property name="acceptance.test.report.dir"
value="${functional.test.dir}" />
<target name="run-selenium-tests">
<mkdir dir="${reports.dir}" />
<java jar="${acceptance.test.lib.dir}/selenium-server.jar"
fork="true">
<arg line="-htmlSuite "${firefox}""/>
<arg line=""${base.url}""/>
<arg line=""${acceptance.test.list.dir}/${test.suite}""/>
<arg line=""${reports.dir}/index.html""/>
<arg line="-timeout ${timeout}"/>
</java>
</target>
<target name="stop-server">
<get taskname="selenium-shutdown"
src="http://${web.host.name}:
${selenium.rc.port}/selenium-server/driver/?cmd=shutDown"
dest="result.txt" ignoreerrors="true" />
<echo taskname="selenium-shutdown"
message="Errors during shutdown are expected" />
</target>
</project>
執行 Selenium 測試時,當框架打開 Web 瀏覽器、閃電般執行測試,然后關閉該瀏覽器并生成 HTML 報告時,不要被嚇到。這是一種在開發生命周期的早期更快更容易地發現問題的方法(此時它們更易處理)。
使用 Cobertura 報告代碼覆蓋率
現在已經編寫了一些測試,如何確定所有這些測試執行什么 呢?幸運的是,此問題可由像 Cobertura 這樣的代碼覆蓋工具來解答。代碼覆蓋工具可報告測試覆蓋率 —— 以行覆蓋或分支覆蓋形式表示 —— 它表示測試運行時所涉及的代碼量。
清單 8 展示了一個 Ant 腳本。該腳本使用 Cobertura 生成一份關于代碼覆蓋率的 HTML 報告,代碼覆蓋率通過運行一系列 JUnit 測試獲得:
文章來源于領測軟件測試網 http://www.kjueaiud.com/