SAPUI5 КАРМА CI GitLab

#sapui5 #gitlab-ci #karma-runner #ui5-tooling #uiveri5

#sapui5 #gitlab-ci #карма-бегун #ui5-инструментарий #uiveri5

Вопрос:

Я пытаюсь настроить конвейер CI для приложения SAPUI5, используя CI / CD в GitLab.

Я решил использовать следующие инструменты:

  • Инструментарий UI5
  • UIVeri5
  • Карма

До сих пор сборка с помощью инструментов UI5 была успешной. Скорее всего, у меня проблемы с частью тестирования.

Пожалуйста, взгляните на следующие файлы:

  1. .gitlab-ci.yml :

     image: geertjanklaps/node-cf-cli:latest
    cache:
      paths:
        - node_modules/
    stages:
      - test
      - build
    ESLint:
      stage: test
      before_script:
        - npm install
        - npm install --global @ui5/uiveri5
        - npm install -g karma-cli
        - npm install --save-dev karma karma-ui5
        - npm install --save-dev karma-chrome-launcher
      script:
        - karma start --singleRun=true
    #Build MTA File:
      stage: build
      before_script:
        - npm install --global @ui5/cli
      script:
        - ui5 build --all
      only:
        - master
      
  2. karma.conf.js :

     module.exports = function(config) {
      config.set({
       frameworks: [ "ui5" ],
       ui5: {
         mode: "script",
         tests: [ "webapp/test/" ]
       },
       browsers: [ "MyHeadlessChrome" ],
       singleRun: true,
       customLaunchers: {
         MyHeadlessChrome: {
           base: 'ChromeHeadless',
           flags: [
             '--disable-translate',
             '--disable-extensions',
             '--remote-debugging-port=9223',
             '--no-sandbox'
           ]
         },
       },
     });
    };
      

Для более глубокого анализа, пожалуйста, посмотрите на мой репозиторий здесь.

Теперь к проблеме

Задание останавливается со следующей информацией:

Ошибка ссылки: sap не определен
в node_modules/karma-ui5/lib/client/autorun.js: 16:2
в node_modules/karma-ui5/lib/client/autorun.js:22:3

Пожалуйста, смотрите Полный журнал заданий для получения дополнительной информации:

 [0KRunning with gitlab-runner 13.5.0-rc2 (71c90c86)
[0;m[0K  on docker-auto-scale fa6cab46
[0;msection_start:1603897730:resolve_secrets
[0K[0K[36;1mResolving secrets[0;m
[0;msection_end:1603897730:resolve_secrets
[0Ksection_start:1603897730:prepare_executor
[0K[0K[36;1mPreparing the "docker machine" executor[0;m
[0;m[0KUsing Docker executor with image geertjanklaps/node-cf-cli:latest ...
[0;m[0KPulling docker image geertjanklaps/node-cf-cli:latest ...
[0;m[0KUsing docker image sha256:4d8a2c0623c41c1b33b2d9505d88a0712615ca0dc12b1deb05ea5f9ebfb43757 for geertjanklaps/node-cf-cli:latest with digest geertjanklaps/node-cf-cli@sha256:6bc976fbfae34d9d982b39331bfd842518e28da02cfacf76a2c83bab67ffb31b ...
[0;msection_end:1603897771:prepare_executor
[0Ksection_start:1603897771:prepare_script
[0K[0K[36;1mPreparing environment[0;m
[0;mRunning on runner-fa6cab46-project-22032692-concurrent-0 via runner-fa6cab46-srm-1603897681-955e55b1...
section_end:1603897774:prepare_script
[0Ksection_start:1603897774:get_sources
[0K[0K[36;1mGetting source from Git repository[0;m
[0;m[32;1m$ eval "$CI_PRE_CLONE_SCRIPT"[0;m
[32;1mFetching changes with git depth set to 50...[0;m
Initialized empty Git repository in /builds/MarvinsRoom/testproject-1/.git/
[32;1mCreated fresh repository.[0;m
[32;1mChecking out 2cde8a5a as master...[0;m

[32;1mSkipping Git submodules setup[0;m
section_end:1603897776:get_sources
[0Ksection_start:1603897776:restore_cache
[0K[0K[36;1mRestoring cache[0;m
[0;m[32;1mChecking cache for default...[0;m
Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/22032692/default[0;m 
[32;1mSuccessfully extracted cache[0;m
section_end:1603897777:restore_cache
[0Ksection_start:1603897777:step_script
[0K[0K[36;1mExecuting "step_script" stage of the job script[0;m
[0;m[32;1m$ npm install[0;m
npm WARN deprecated http2@3.3.7: Use the built-in module in node 9.0.0 or newer, instead
npm WARN deprecated istanbul@0.4.5: This module is no longer maintained, try this instead:
npm WARN deprecated   npm i nyc
npm WARN deprecated Visit https://istanbul.js.org/integrations for other alternatives.
npm WARN deprecated chokidar@1.7.0: Chokidar 2 will break on node v14 . Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated core-js@2.6.11: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
npm WARN deprecated fsevents@1.2.13: fsevents 1 will break on node v14  and could be using insecure binaries. Upgrade to fsevents 2.
npm WARN deprecated circular-json@0.5.9: CircularJSON is in maintenance only, flatted is its successor.
npm WARN deprecated nodemailer@2.7.2: All versions below 4.0.1 of Nodemailer are deprecated. See https://nodemailer.com/status/
npm WARN deprecated samsam@1.3.0: This package has been deprecated in favour of @sinonjs/samsam
npm WARN deprecated uws@9.14.0: New code is available at github.com/uNetworking/uWebSockets.js
npm WARN deprecated request@2.75.0: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated mailcomposer@4.0.1: This project is unmaintained
npm WARN deprecated socks@1.1.9: If using 2.x branch, please upgrade to at least 2.1.6 to avoid a serious bug with socket data flow and an import issue introduced in 2.1.0
npm WARN deprecated har-validator@2.0.6: this library is no longer supported
npm WARN deprecated hawk@3.1.3: This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
npm WARN deprecated node-uuid@1.4.8: Use uuid module instead
npm WARN deprecated buildmail@4.0.1: This project is unmaintained
npm WARN deprecated hoek@2.16.3: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated sntp@1.0.9: This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
npm WARN deprecated boom@2.10.1: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated cryptiles@2.0.5: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).

> uws@9.14.0 install /builds/MarvinsRoom/testproject-1/node_modules/uws
> node-gyp rebuild > build_log.txt 2>amp;1 || exit 0


> core-js@2.6.11 postinstall /builds/MarvinsRoom/testproject-1/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> sinon@4.4.8 postinstall /builds/MarvinsRoom/testproject-1/node_modules/sinon
> node scripts/support-sinon.js

Have some â¤ï¸  for Sinon? You can support the project via Open Collective:
 > https://opencollective.com/sinon/donate

npm WARN notsup Unsupported engine for http2@3.3.7: wanted: {"node":">=0.12.0 <9.0.0"} (current: {"node":"12.16.1","npm":"6.14.1"})
npm WARN notsup Not compatible with your version of node/npm: http2@3.3.7
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

added 944 packages from 1379 contributors and audited 940 packages in 42.322s

2 packages are looking for funding
  run `npm fund` for details

found 116 vulnerabilities (52 low, 20 moderate, 44 high)
  run `npm audit fix` to fix them, or `npm audit` for details
[32;1m$ npm install --global @ui5/uiveri5[0;m
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
/usr/bin/uiveri5 -> /usr/lib/node_modules/@ui5/uiveri5/bin/uiveri5
  @ui5/uiveri5@1.45.1
added 182 packages from 231 contributors in 9.259s
[32;1m$ npm install -g karma-cli[0;m
/usr/bin/karma -> /usr/lib/node_modules/karma-cli/bin/karma
  karma-cli@2.0.0
added 6 packages from 21 contributors in 0.74s
[32;1m$ npm install --save-dev karma karma-ui5[0;m
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated chokidar@1.7.0: Chokidar 2 will break on node v14 . Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated core-js@2.6.11: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
npm WARN deprecated fsevents@1.2.13: fsevents 1 will break on node v14  and could be using insecure binaries. Upgrade to fsevents 2.
npm WARN deprecated nodemailer@2.7.2: All versions below 4.0.1 of Nodemailer are deprecated. See https://nodemailer.com/status/
npm WARN deprecated circular-json@0.5.9: CircularJSON is in maintenance only, flatted is its successor.
npm WARN deprecated request@2.75.0: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated har-validator@2.0.6: this library is no longer supported
npm WARN deprecated hawk@3.1.3: This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
npm WARN deprecated node-uuid@1.4.8: Use uuid module instead
npm WARN deprecated hoek@2.16.3: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated boom@2.10.1: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated sntp@1.0.9: This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
npm WARN deprecated cryptiles@2.0.5: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated socks@1.1.9: If using 2.x branch, please upgrade to at least 2.1.6 to avoid a serious bug with socket data flow and an import issue introduced in 2.1.0
npm WARN deprecated mailcomposer@4.0.1: This project is unmaintained
npm WARN deprecated buildmail@4.0.1: This project is unmaintained
npm WARN deprecated uws@9.14.0: New code is available at github.com/uNetworking/uWebSockets.js
npm WARN rm not removing /builds/MarvinsRoom/testproject-1/node_modules/.bin/uuid as it wasn't installed by /builds/MarvinsRoom/testproject-1/node_modules/node-uuid
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.1.2 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/@sap/grunt-sapui5-bestpractice-test/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

  karma@5.2.3
  karma-ui5@2.3.1
added 445 packages from 660 contributors, removed 14 packages, updated 38 packages, moved 27 packages and audited 1376 packages in 32.8s

32 packages are looking for funding
  run `npm fund` for details

found 127 vulnerabilities (64 low, 20 moderate, 43 high)
  run `npm audit fix` to fix them, or `npm audit` for details
[32;1m$ npm install --save-dev karma-chrome-launcher[0;m
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.13 (node_modules/@sap/grunt-sapui5-bestpractice-test/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.3 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

  karma-chrome-launcher@3.1.0
added 2 packages from 29 contributors, updated 1 package and audited 1378 packages in 12.365s

34 packages are looking for funding
  run `npm fund` for details

found 127 vulnerabilities (64 low, 20 moderate, 43 high)
  run `npm audit fix` to fix them, or `npm audit` for details
[32;1m$ karma start --singleRun=true[0;m
[32m28 10 2020 15:11:21.695:INFO [karma-server]: [39mKarma v5.2.3 server started at http://localhost:9876/
[32m28 10 2020 15:11:21.698:INFO [launcher]: [39mLaunching browsers MyHeadlessChrome with concurrency unlimited
[32m28 10 2020 15:11:21.702:INFO [launcher]: [39mStarting browser ChromeHeadless
[32m28 10 2020 15:11:22.071:INFO [Chromium 80.0.3987.87 (Ubuntu 0.0.0)]: [39mConnected on socket PNW35HCgiwnOH-7cAAAA with id 80702627
[33m28 10 2020 15:11:22.137:WARN [web-server]: [39m404: /resources/sap-ui-core.js
[31mChromium 80.0.3987.87 (Ubuntu 0.0.0) ERROR[39m
  Uncaught ReferenceError: sap is not defined
  at node_modules/karma-ui5/lib/client/autorun.js:16:2
  
  ReferenceError: sap is not defined
      at node_modules/karma-ui5/lib/client/autorun.js:16:2
      at node_modules/karma-ui5/lib/client/autorun.js:22:3


section_end:1603897883:step_script
[0Ksection_start:1603897883:cleanup_file_variables
[0K[0K[36;1mCleaning up file based variables[0;m
[0;msection_end:1603897885:cleanup_file_variables
[0K[31;1mERROR: Job failed: exit code 1
[0;m
  

Ответ №1:

Вы настроили свой karma-ci.conf.js в соответствии с https://github.com/SAP/karma-ui5 ?

Это должно выглядеть так:

 module.exports = function(config) {
  config.set({
    frameworks: ["ui5", "qunit", "sinon"],
    ui5: {
      url: "https://openui5.hana.ondemand.com",
      mode: "script",
      config: {
        async: true,
        resourceRoots: {
          "sap.ui.demo.todo": "./base/webapp"
        }
      },
      tests: [
        "sap/ui/demo/todo/test/unit/AllTests"
      ]
    },
    browsers: [ "Chrome" ]
  });
};
  

Комментарии:

1. что здесь означает this ./base (для корней ресурсов)? Копирует ли он в эту папку или создает каталог с таким именем? Возможно ли добавить другой проект внутри этого корня ресурса? Даже если я добавлю «../» для перемещения предыдущего каталога, у меня все еще есть путаница с (./base)