1

我们有一个带有 QUnit 测试的 OpenUI5 应用程序。我们尝试使用grunt-contrib-qunit自动化测试,但是当 grunt-contrib-qunit 在 phantomjs 中启动我们的 qunittests.html 文件时它会给出以下错误:

>>  Error: found in negative cache: 'sap/ui/core/Core.js' from TODO???/sap/ui/core/Core: Error: found in negative cache: 'sap/ui/core/Component.js' from TODO???/sap/ui/core/Component: Error: found in nega...

与 QUnit 测试相同的文件在 chrome 中运行良好。

为了弄清楚我们的环境导致了这个问题,我做了以下事情:

我创建了一个 Gruntfile.js ,然后grunt-phpgrunt-contrib-qunit。然后我从OpenUI5 Walkthrough Step 35下载了代码。我启动了演练应用程序并像这样设置 grunt-contrib-qunit:

qunit: {
  all: {
    options: {
      urls: [
        'http://localhost:1337/test/integration/opaTests.qunit.html'
      ]
    }
  }
},

同样的问题。“负缓存”。


我们使用 qunit 的其他 grunt 实现、karma-qunit、CasperJS 等对其进行了测试。

4

1 回答 1

2

我在尝试自动测试 ui5 应用程序时遇到了同样的问题。我不确定是什么导致了这个问题,但它似乎与 grunt-contrib-qunit 使用的 phantomjs 版本(撰写本文时为 1.9.15)有关。所以我选择了以下 DIY 解决方法:

首先下载phantomjs 2.0并手动安装,意思是创建一个别名,或者把它放在你的路径中。Phantomjs 在他们的下载中包含了一堆非常有用的示例,其中一个是run-qunit.js。如果将其复制到项目根目录中,则可以使用命令(打开命令提示符)phantomjs run-qunit.js http://localhost:1337/test/integration/opaTests.qunit.html运行测试。请注意,在这样做之前您需要启动一个开发服务器,因为您需要一个 url 来测试。我还需要适当地增加 run-qunit.js 中的默认超时,OPA5 测试需要很长时间。试试这个数字。

在grunt-shell的帮助下,您可以将此命令集成到您的 grunt 工作流程中。我为我的 qunit 测试创建了一个grunt testunit任务,并为我的 OPA5 集成测试创建了一个单独的grunt testintegration任务。

希望对您有所帮助,请询问您是否遇到此设置的任何问题。它确实对我有用!

给未来读者的提示:当 grunt-contrib-qunit 使用 phantomjs 2.0.0 时,可能不需要此解决方法。

于 2015-11-03T19:45:05.807 回答