2

我正在尝试将 HTML 夹具数据加载到 JsTestDriver 测试环境中。当jsTestDriver.conf文件位于工作目录的顶层时,我可以让它工作,但如果我把它放在子目录中并尝试使用basePathJsTestDriver 的功能,我就无法让它工作。有没有人让这个工作?如果是这样,我做错了什么?

首先是有效的目录结构:

├── fixtures
│   └── fix.html
├── jsTestDriver.conf
├── lib
│   └── JsTestDriver-1.3.5.jar
├── server.sh
├── test
│   └── dom.fixture.test.js
└── test.sh

jsTestDriver.conf 如下所示:

server: http://localhost:9876

# files in the server section are only added if explicitly asked for        
serve:
  - fixtures/fix.html

test:
  - test/dom.fixture.test.js

timeout: 10

server.sh 和 test.sh 分别调用 server 和 test-runner:

服务器.sh:

PORT=9876
java -jar lib/JsTestDriver-1.3.5.jar --captureConsole --port $PORT --browser "/usr/bin/firefox;%s,/opt/google/chrome/google-chrome;%s;--allow-file-access-from-files"    

测试.sh

java -jar lib/JsTestDriver-1.3.5.jar --tests all --captureConsole

我在 dom.fixture.test.js 代码中加载夹具,如下所示:

function getFixtureContent() {
  var url = '/test/fixtures/fix.html';

  var request = new XMLHttpRequest();
  request.open('GET', url, false); // synchronous!
  request.send(null);

  return request.responseText;
}

这成功地返回了 fix.html 中的 html,然后我必须将其加载到 DOM 中。

但是,当我将 jsTestDriver.conf 文件推送到 conf 目录时,我似乎无法让 JsTestDriver 中的嵌入式码头服务器在不使用绝对路径 ( /test//$HOME/javascript/jstd/fixtures/fix.html) 的情况下找到 fix.html 文件,尽管尝试了许多变化。默认情况下,JSTD 假定/testJetty 的根与您放置 jsTestDriver.conf 文件的位置相关。据说,设置basePath应该允许你改变它。

这是一次失败的尝试:

目录结构是相同的,除了 jsTestDriver.conf 在一个 conf 目录中:

├── conf
│   └── jsTestDriver.conf

jsTestDriver.conf 中的路径都被调整为一个目录:

server: http://localhost:9876

# files in the server section are only added if explicitly asked for        
serve:
  - ../fixtures/fix.html

test:
  - ../test/dom.fixture.test.js

timeout: 10

server.sh 和 test.sh 有两个额外的命令行开关:

--basePath .. --config conf/jsTestDriver.conf

其余的都是一样的。

错误是:

<h2>HTTP ERROR 404</h2>
<p>Problem accessing /test/fixtures/fix.html. Reason:
<pre>NOT_FOUND</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/> 

我已经尝试过 1.3.5 和 1.3.4.b 版本。结果相同。感谢任何可以帮助解决这个谜团的人。

4

1 回答 1

1

我建议尝试 1.3.3d 版本 - 由于该版本修复了相对路径计算中的错误,我们不得不继续使用该版本,但似乎已作为 1.3.4 的回归重新引入,并且仍然是1.3.5 的问题。

于 2012-11-22T23:57:30.150 回答