travis: sh: 0: Tidak dapat membuka /etc/init.d/xvfb

Travis CI saya menggunakan Ubuntu 14.04 dan Node.js 8. .travis.yml saya terlihat seperti:

language: node_js
node_js:
  - 8
sudo: required
addons:
    chrome: stable
before_script:
  - export DISPLAY=:99.0
  - sh -e /etc/init.d/xvfb start
install:
  - npm set progress=false
  - npm install
script:
  - ng lint
  - npm run test
  - npm run e2e
  - npm run build

Saya sudah mencoba memperbaruinya untuk menggunakan Ubuntu 16.04 dan Node.js 10 dengan mengubahnya menjadi:

language: node_js
node_js:
  - '10'
dist: xenial
sudo: required
addons:
    chrome: stable
before_script:
  - export DISPLAY=:99.0
  - sh -e /etc/init.d/xvfb start
install:
  - npm set progress=false
  - npm install
script:
  - ng lint
  - npm run test
  - npm run e2e
  - npm run build

Namun sekarang saya mendapatkan kesalahan saat mencoba memulai xvfb:

0,00s$ sh -e /etc/init.d/xvfb mulai

sh: 0: Tidak dapat membuka /etc/init.d/xvfb

Perintah sh -e /etc/init.d/xvfb start gagal dan keluar dengan 127 selama .


person Francesco Borzi    schedule 14.04.2019    source sumber


Jawaban (2)


Solusinya adalah menghapus sh -e /etc/init.d/xvfb start dari array before_script dan cukup memasukkan xvfb ke dalam array services.

Jadi .travis.yml saya sekarang terlihat seperti ini:

language: node_js
node_js:
  - '10'
dist: xenial
sudo: required
services:
  - xvfb
addons:
    chrome: stable
before_script:
  - export DISPLAY=:99.0
install:
  - npm set progress=false
  - npm install
script:
  - ng lint
  - npm run test
  - npm run e2e
  - npm run build
person Francesco Borzi    schedule 14.04.2019
comment
Ya, hanya lupa melakukan itu. Terima kasih - person Francesco Borzi; 21.09.2019

Selain jawaban yang diterima, menurut saya konfigurasi hasil harus sedikit lebih jelas sesuai dengan dokumen travis Menggunakan xvfb untuk Menjalankan Pengujian yang Memerlukan GUI. Anda tidak perlu menyetel DISPLAY, sehingga bagian before_script menjadi berlebihan:

Ini hanya berfungsi di Ubuntu 16.04 (Xenial) dan rilis yang lebih baru yaitu dengan dist: xenial atau dist: bionic
Berikut ini akan memulai xvfb dan menetapkan nilai yang tepat untuk variabel lingkungan DISPLAY...

Anda juga tidak perlu menentukan dist pada tahun 2019 untuk node_js, karena xenial sekarang adalah gambar default untuk bahasa node_js (postingan blog). Sebelumnya trusty, jadi solusi lain yang mungkin adalah menentukan dist sebagai trusty (lihat dok). Tetapi berbicara tentang default, konfigurasi yang dibahas mungkin terlihat seperti ini

language: node_js
node_js:
  - '10'
sudo: required
services:
  - xvfb
addons:
    chrome: stable
install:
  - npm set progress=false
  - npm install
script:
  - ng lint
  - npm run test
  - npm run e2e
  - npm run build
person dhilt    schedule 16.08.2019