2011-09-19 176 views
5

我有很多的茉莉花單元測試,運行單元測試的Javascript代碼。 他們正在使用Jasmine-jquery插件來執行DOM操作。 他們使用loadFixture,加載HTML的Javascript JsTestDriver茉莉花和茉莉花的jQuery

我想這些自動化單元測試,使用JsTestDriver的燈具,與JasmineAdapter 但是所有的測試涉及的DOM jQuery的操作是不及格? 這有什麼問題嗎? 有沒有辦法與JsTestDriver一起使用Jasmine-jQuery?

回答

9

我會回答自己,因爲我找到了這個問題的解決方案。 問題是茉莉-jQuery是使用Ajax加載的HTML夾具,它使用相對路徑,假定HTML夾具位於某處相對於運行茉莉花測試HTML容器。 但因爲JsTestDriver加載中自己的「空間」的測試,所以我們要改變位置,其中茉莉jQuery的尋找那些HTML夾具,使JsTestDriver加載它們。

所以解決辦法如下:

JsTestDriver已加載靜態的html文件的能力。 在配置文件中添加以下內容:

即成: - 例如: 即成: - 燈具*。html的

現在你可以訪問那些具有以下格式 的http:本地主機:9876 /測試/ fixtures/... 你讓Jasmine-jquery知道從這個位置加載燈具。

,瞧,你將有你的測試工作了。

+0

我有我的jar文件在我的文件夾「茉莉花」裏面有我的lib /茉莉核心/ jasmine.js運行。我也有腳本/ test.js和fixtures/text.html。我做過Serve: - fixtures/*。html,但在設置jasmines夾具路徑時,仍然遇到'fixtures'/ fixtures'和其他變體的恐慌錯誤。有任何想法嗎? –

+0

啊我讀了莫妮卡的回答,看到我需要在前面放置/測試。這解決了它。由於我的服務器不在本地主機上,本地主機的例子讓我感到有點失落。 –

+0

這似乎並不適用於JsTestDriver-1.3.4-a.jar,但我在Windows上爲JsTestDriver-1.3.4.b.jar。 – gotofritz

3

我只想澄清一點的previous posting

如果您jsTestDriver配置文件您有:

服務:

spec/fixtures/*_fixture.html 

然後,你需要

jasmine.getFixtures().fixturesPath = '/test/spec/fixtures'; 

重寫你的測試套件,基本上是/test/ +任意路徑你在你的jsTestDriver配置文件中的服務部分聲明。

0

我剛剛發佈了一個開源工具包,希望可以幫助其他人儘可能多地幫助我。它是許多開源工具的組成部分,它爲您提供了一個開箱即用的requirejs骨幹應用程序。

它有一個更優雅的解決方案,使用requirejs文本插件和requirejs句柄插件。

它提供單個命令來運行:dev web服務器,jasmine單一瀏覽器測試運行器,jasmine js-test-driver多瀏覽器測試運行器以及JavaScript和CSS的級聯/縮小。它還輸出用於生產調試的應用程序的非最小版本,預編譯您的手柄模板並支持國際化。 無需安裝。它只是工作。

http://github.com/davidjnelson/agilejs