当前位置: 首页 > 知识库问答 >
问题:

使用 JsTestDriver 的 basePath 指定从何处加载夹具数据

司寇灵均
2023-03-14

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

├── 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.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"    

test.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;
}

这将成功返回修复中的html。html,然后我必须将其加载到DOM中。

但是当我将jsTestDriver.conf文件推入一个conf目录时,如果不使用绝对路径(< code >/test//$ HOME/JavaScript/jstd/fixtures/fix . html ),我似乎无法让jsTestDriver中的嵌入式jetty服务器找到fix.html文件,尽管尝试了许多变化。默认情况下,JSTD假定Jetty的< code>/test根目录相对于您放置jsTestDriver.conf文件的位置。假设,设置< code>basePath应该允许您改变这一点。

目录结构是相同的,除了 jsTestDriver.conf 位于 conf dir 中:

├── 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

和服务器。sh和测试。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尝试过。结果相同。感谢任何能帮助解开这个谜团的人。

共有1个答案

黄仲渊
2023-03-14

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

 类似资料:
  • 我使用一个简单的夹具来填充测试数据库中的表。但是当我尝试加载它时,检查完整性代码会抛出异常“表未找到:[]”。 我的固定装置: 要加载fixture,我使用@app/tests:

  • JsTestDriver 是 javascript 单元测试工具,webstorm 集成了 JsTestDriver ,可以直接使用。 1.在你的根目录中插入JsTestDriver的配置文件jsTestDriver.conf 内容可能如下:(根据本机目录的实际情况配置) server: http://localhost:9876 load: - assets/3.0/tools/jasmin

  • 我正在尝试使用Glide库将gif加载到ImageView中。Gif图像位于Raw文件夹中。代码如下: 但它没有加载。我错过什么了吗?它没有给出失败的日志。

  • http://paulusschoutsen.nl/blog/2012/08/java-component-jmapviewer-with-offlin-openstreetmap-support/

  • 我正在使用SpringBoot和thymeleaf从html模板生成文档。 随着模板的不断变化,我希望ti从外部加载模板,只是从外部添加或删除模板,而不是重新部署应用程序。 作为POC,使用/resources文件夹时效果良好。 这就是错误: 解析模板“凭证”时出错,该模板可能不存在,或者任何已配置的模板解析程序都无法访问该模板 这就是背景: applycation.yml 这是我的方法:其中te

  • 如何才能实现这个功能?最好配合路由勾子实现,不然应该会在一个页面加载后,其他页面不点击刷新应该会一直保留加载的js