通过无头PhantomJS浏览器/grunt-contrib-qunit进行的UI5 QUnit自动化不起作用

2020-08-26 08:53发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨,我在通过CI/CD命令行界面...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,我在通过CI/CD命令行界面对UI5应用程序进行QUnit测试自动化时遇到了麻烦。

当从Documentation SDK(" Explored App")中获取最佳实践示例代码时,例如#/sample ... testing.16/preview

下载源代码zip并解压缩到本地文件夹,例如c:\ test。

在根目录(/webapp上方)配置一个简单的package.json

 {
   " name":" projectName",
   " version":" 1.0.0",
   " devDependencies":{
     " grunt":"〜0.4.1",
     " grunt-contrib-qunit":"> = 0.2.1"
   }
 } 

咕unt声文件(mygruntfile.js)

 module.exports = function(grunt){
     "使用严格";
     grunt.initConfig({
         qunit:{
             全部:['webapp/test/unit/unitTests.qunit.html']
         }
     });
     grunt.loadNpmTasks('grunt-contrib-qunit');
     grunt.registerTask('default',['qunit']);
 }; 

然后在命令提示符的根目录下,安装节点依赖项

 npm安装

并运行grunt版本

 grunt --gruntfile mygruntfile.js --verbose --debug 

您将看到PhantomJS无头浏览器运行时出现多个错误。

我试图用相同的技术来证明,但是在独立的QUnit引导页面上进行测试,并测试了库(即没有任何SAP/UI5代码)。 有趣的是,我还发现了错误,如果从QUnit引导html页面中删除了QUnit脚本标记,则可以解决该错误。

我认为这是由于grunt-contrib-qunit注入了自己的QUnit版本,并且与引导页面中定义的实例冲突。

以下是SAP测试脚本方案和我的最小qunit测试方案(在错误输出的第65行上)常见的一个明显错误:

 [D] [" phantomjs"," error.onError"," ReferenceError:找不到变量:QUnit",[{" file":" phantomjs://code/bridge.js"," line"  :14," function":""}]] 

通过我的独立测试,我可以轻松删除对qunit.js的引导引用; 测试将在无头phantomJS中运行,但在Chrome中将失败。 保留它,它可以在Chrome中运行,但无法实现无头phantomJS。

在UI5最佳实践QUnit测试页中,QUnit被包装在SAP需求库中,我不知道如何删除它。

我对社区的问题是
1)是否存在运行UI5 QUnit和OPA5测试的成功的命令行自动化示例? 直接或通过testsuite.qunit.html页面。 或;

2)有人可以建议如何在unitTests.qunit.html引导页面和UI5中删除或更改QUnit引用吗?

2条回答
太Q了
2020-08-26 09:44

您好,我很乐意报告自己的问题的答案。 一位前同事同事解决了我最初发布的问题。

我的问题1)的答案是 https://github.com/SAP/openui5-sample-app 。 但是,值得注意的是,该示例使用为基于组件的执行而不是iFrame定义的OPA5测试-这需要对单元测试进行代码更改,而不仅仅是构建配置。 这是因为该示例使用了Karma + Istanbul代码覆盖率报告,并且Istanbul不支持iFrames代码覆盖率。

我的问题2的答案是为非PhantomJS浏览器动态编写QUnit js参考:

  

一周热门 更多>