-
-
Save argaghulamahmad/57f76449b9249adf1218188ec72ddeaa to your computer and use it in GitHub Desktop.
stages: | |
- test | |
- deploy | |
UnitTest: | |
image: python:3.6 | |
stage: test | |
before_script: | |
- wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - | |
- echo "deb http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google.list | |
- pip install -r requirements.txt | |
- python manage.py makemigrations | |
- python manage.py migrate | |
- apt-get update -qq && apt-get install -y -qq unzip | |
- apt-get install -y google-chrome-stable | |
- apt-get install -y xvfb | |
- wget https://chromedriver.storage.googleapis.com/2.43/chromedriver_linux64.zip | |
- unzip chromedriver_linux64.zip | |
- python manage.py collectstatic --no-input | |
- python manage.py runserver 8000 & | |
when: on_success | |
script: | |
- coverage run --include='*' manage.py test | |
- coverage report -m | |
Deployment: | |
image: ruby:2.4 | |
stage: deploy | |
before_script: | |
- gem install dpl | |
- wget -qO- https://cli-assets.heroku.com/install-ubuntu.sh | sh | |
script: | |
- dpl --provider=heroku --app=$HEROKU_APPNAME --api-key=$HEROKU_APIKEY | |
- export HEROKU_API_KEY=$HEROKU_APIKEY | |
- heroku run --app $HEROKU_APPNAME migrate | |
environment: | |
name: production | |
url: $HEROKU_APP_HOST |
def setUp(self): | |
chrome_options = Options() | |
chrome_options.add_argument('--dns-prefetch-disable') | |
chrome_options.add_argument('--no-sandbox') | |
chrome_options.add_argument('--headless') | |
chrome_options.add_argument('disable-gpu') | |
service_log_path = "./chromedriver.log" | |
service_args = ['--verbose'] | |
self.selenium = webdriver.Chrome('./chromedriver', chrome_options=chrome_options) | |
self.selenium.implicitly_wait(25) | |
super(Story6FunctionalTest,self).setUp() | |
jika pada saat
- unzip chromedriver_linux64.zip
output nya error karena ask to remove chromedriver, tambahin dibawahnya- rm chromedriver
Selamat sore kak.
Saya ingin tahu, itu file tests.py yang mana yang perlu dimodifikasi ? apakah file tests.py yang berada satu folder dengan app Story6 ?
Karena apabila satu folder dengan Story6, sepertinya ada sesuatu yang kurang saat melakukan import, sehingga memunculkan Options is not defined
yang satu folder app bro
bagi kalian yang mengalami ./chromedriver unexpectedly exited, tambahin kode di bawah ini, setelah baris ke 16 .gitlab-ci.yml
- apt-get install -y libglib2.0-0=2.50.3-2 libnss3=2:3.26.2-1.1+deb9u1 libgconf-2-4=3.2.6-4+b1 libfontconfig1=2.11.0-6.7+b1
Sebenarnya seperti ini saja sudah cukup:
https://gist.github.com/laymonage/d6eba112de17645f194b3fea0ed72255
Bahkan bagian runserver
bisa dihapus kalau kita menggunakan LiveServerTestCase
(atau StaticLiveServerTestCase
), dan menggunakan self.live_server_url
untuk mendapatkan root url dari server-nya (karena port yang digunakan default-nya berubah-ubah dan bukan 8000, contoh: self.selenium.get(self.live_server_url + "/status/"
).
Cara ini justru yang direkomendasikan (best practice) untuk functional test, karena server yang dijalankan tidak akan menggunakan database dari local server yang biasa kita pakai di development.
Link yang mungkin bermanfaat untuk dibaca pengguna Windows:
https://stackoverflow.com/questions/50143413/errorgpu-process-transport-factory-cc1007-lost-ui-shared-context-while-ini
mantap, terima kasih atas @laymonage
jika pada saat
- unzip chromedriver_linux64.zip
output nya error karena ask to remove chromedriver, tambahin dibawahnya
- rm chromedriver