Size: a a a

2020 November 15

VG

Vitalii Grygoruk in JS for testing
Vitalii Sotnichenko
Да- uid=934056445 gid=645703698 groups=645703698
Короче если хочешь чтобы тебе помогли, то кидай ссылку на gist с dockerfile, docker-compose.yml и всем что может относиться к вопросу. А то гадание на кофейной гуще получается
источник

VS

Vitalii Sotnichenko in JS for testing
Vitalii Grygoruk
А чего нельзя просто под root юзером контейнер запускать? У твоего юзера нет прав на sudo, потому что его нет в /etc/sudoers внутри контейнера
действительно когда запускаю docker-compose exec -T -u 0:0 то ошибки не появляется. Но когда это все сетапили и обсуждали с девопсами говорили чтобы не использовать рут а юзера. И раньше работало а сейчас почему то начали возникать ошибки
источник

VS

Vitalii Sotnichenko in JS for testing
Vitalii Grygoruk
Короче если хочешь чтобы тебе помогли, то кидай ссылку на gist с dockerfile, docker-compose.yml и всем что может относиться к вопросу. А то гадание на кофейной гуще получается
codeceptjs:
   image: registry.com/codeceptjs:1.0.0
   user: ${CURRENT_USER:-0}
   depends_on:
     - nginx
   stdin_open: true
   volumes:
     - ./application/static/test:/tests:rw
источник

VG

Vitalii Grygoruk in JS for testing
Vitalii Sotnichenko
действительно когда запускаю docker-compose exec -T -u 0:0 то ошибки не появляется. Но когда это все сетапили и обсуждали с девопсами говорили чтобы не использовать рут а юзера. И раньше работало а сейчас почему то начали возникать ошибки
А вообще, возвращаясь к изначальному вопросу. У вас что-то не так с правами на файлы внутри контейнера. Npm install не нужно sudo совсем чтобы установить пакеты в node_modules внутри директории owner-ом которой есть юзер под которым запущен контейнер
источник

VS

Vitalii Sotnichenko in JS for testing
# Add pptr user.
RUN groupadd -r pptruser && useradd -r -g pptruser -G audio,video pptruser \
   && mkdir -p /home/pptruser/Downloads \
   && chown -R pptruser:pptruser /home/pptruser \
   && chown -R pptruser:pptruser /home/pptruser

RUN git clone https://github.com/codecept-js/CodeceptJS.git && mv CodeceptJS /codecept
WORKDIR /codecept
RUN npm set progress=false
RUN npm i -g pnpm
RUN chown -R pptruser:pptruser /codecept
RUN runuser -l pptruser -c 'npm install'

RUN ln -s /codecept/bin/codecept.js /usr/local/bin/codeceptjs
RUN mkdir /tests
источник

VS

Vitalii Sotnichenko in JS for testing
Вот такое в докерфайле нашел по созданию юзера
источник

VG

Vitalii Grygoruk in JS for testing
Vitalii Sotnichenko
# Add pptr user.
RUN groupadd -r pptruser && useradd -r -g pptruser -G audio,video pptruser \
   && mkdir -p /home/pptruser/Downloads \
   && chown -R pptruser:pptruser /home/pptruser \
   && chown -R pptruser:pptruser /home/pptruser

RUN git clone https://github.com/codecept-js/CodeceptJS.git && mv CodeceptJS /codecept
WORKDIR /codecept
RUN npm set progress=false
RUN npm i -g pnpm
RUN chown -R pptruser:pptruser /codecept
RUN runuser -l pptruser -c 'npm install'

RUN ln -s /codecept/bin/codecept.js /usr/local/bin/codeceptjs
RUN mkdir /tests
Ну я не вижу чтобы вы явно указывали айди юзера и группы которые вы создаёте в докерфайле
источник

VG

Vitalii Grygoruk in JS for testing
Vitalii Sotnichenko
Вот такое в докерфайле нашел по созданию юзера
То есть ваша проблема тут в том, что вы создаёте docker image с юзером pptruser с неизвестными uid/gid. И потом запускаете контейнер на CI под uid/gid пользователя с CI билд агента. Этого пользователя в контейнере нет, но это не мешает докеру запустить контейнер. Можете попробовать вообще рандомные значения для userid/groupid подставить в ваш docker-compose и получите тот же результат
источник

VS

Vitalii Sotnichenko in JS for testing
Vitalii Grygoruk
То есть ваша проблема тут в том, что вы создаёте docker image с юзером pptruser с неизвестными uid/gid. И потом запускаете контейнер на CI под uid/gid пользователя с CI билд агента. Этого пользователя в контейнере нет, но это не мешает докеру запустить контейнер. Можете попробовать вообще рандомные значения для userid/groupid подставить в ваш docker-compose и получите тот же результат
спасибо
источник

B

Bola in JS for testing
Vitalii Grygoruk
@bboollaatt ты тут немного не о том. Дока которую ты скинул не относится совсем никак к тому вопросу который поднял топикстартер
вот верная ссылка https://docs.docker.com/engine/reference/run/#user


root (id = 0) is the default user within a container
Но оказалось, что у автора в докер файле создаётся свой пользователь
источник

VS

Valerii Synenko in JS for testing
Привет всем!
Продолжаю изучать wdio и столкнулся с неясностью.

У меня есть describe, в нем есть beforeEach (откриваю браузер) 2 it и
afterEach (питаюсь закрьlть браузер).
Пробую ранить тестьl и получаю такое - откр браузер, проходит первий тест, закривается браузер, откривается 2 пустих браузера, получаю "invalid session id" в консоль и все.

в afterEach пробовал и reloadSession() и closeWindow()

Где я могу ошибатся?
источник

VG

Vitalii Grygoruk in JS for testing
Valerii Synenko
Привет всем!
Продолжаю изучать wdio и столкнулся с неясностью.

У меня есть describe, в нем есть beforeEach (откриваю браузер) 2 it и
afterEach (питаюсь закрьlть браузер).
Пробую ранить тестьl и получаю такое - откр браузер, проходит первий тест, закривается браузер, откривается 2 пустих браузера, получаю "invalid session id" в консоль и все.

в afterEach пробовал и reloadSession() и closeWindow()

Где я могу ошибатся?
Не надо открывать и закрывать браузер если используете wdio test runner
источник

VS

Valerii Synenko in JS for testing
Vitalii Grygoruk
Не надо открывать и закрывать браузер если используете wdio test runner
я использую моку
источник

VG

Vitalii Grygoruk in JS for testing
Valerii Synenko
я использую моку
Как запускаете тесты?
источник

VS

Valerii Synenko in JS for testing
npm test
источник

BO

Boris Osipov in JS for testing
Valerii Synenko
Привет всем!
Продолжаю изучать wdio и столкнулся с неясностью.

У меня есть describe, в нем есть beforeEach (откриваю браузер) 2 it и
afterEach (питаюсь закрьlть браузер).
Пробую ранить тестьl и получаю такое - откр браузер, проходит первий тест, закривается браузер, откривается 2 пустих браузера, получаю "invalid session id" в консоль и все.

в afterEach пробовал и reloadSession() и closeWindow()

Где я могу ошибатся?
сделай пример, выложи на pastebin\gist.github.com.
источник

VS

Valerii Synenko in JS for testing
@boris_osipov @vgrygoruk спасибо за помощ ребят!
Разобрался, проблема в импорте бьlла.

Бьlло - import {afterEach} from 'mocha' и import {beforeEach} from 'mocha'
поменял на -import 'mocha' и все взлетело
источник

S

Sulaiman in JS for testing
Ребят, может кто поделиться ссылкой на Dockerfile (+Docker-compose) для запуска тестов на chrome на localhost или скинуть скрипт сюда, пожалуйста?
Чтобы запускался chrome, chromedriver, какой-нибудь тестовый framework (wdio/nightwatch), nodejs если надо?
источник

G

Genn in JS for testing
Sulaiman
Ребят, может кто поделиться ссылкой на Dockerfile (+Docker-compose) для запуска тестов на chrome на localhost или скинуть скрипт сюда, пожалуйста?
Чтобы запускался chrome, chromedriver, какой-нибудь тестовый framework (wdio/nightwatch), nodejs если надо?
А Вам с какой целью?
источник

AZ

Alexander Zaverukha in JS for testing
В поиске куча решений. Пробовали искать?
источник