We have an OpenUI5 app with QUnit tests. We tried to automate the tests with grunt-contrib-qunit, but when grunt-contrib-qunit starts our qunittests.html file in phantomjs, it gives the following error:
>> 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...
The same file with the QUnit tests works fine in chrome.
In order to sort out that our environment causes the issue, i did the following:
I created a Gruntfile.js with nothing else then grunt-php and grunt-contrib-qunit. Then i downloaded the code from OpenUI5 Walkthrough Step 35. I started the Walkthrough app and setup grunt-contrib-qunit like this:
qunit: {
all: {
options: {
urls: [
'http://localhost:1337/test/integration/opaTests.qunit.html'
]
}
}
},
Same issue. "Negative cache".
We tested it with other grunt-implementations of qunit, with karma-qunit, CasperJS and others.
答案 0 :(得分: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时,可能不需要此解决方法。