
Konstantin
25.07.2018
08:52:12
смысл от "бюрократического" ревью, которое проверяет только логику и на сколько "красиво" это написано?
трата же времени

Vitaly
25.07.2018
08:52:48
Вопросов больше нет :)
нене, давайте по-новой))) Есть 4 истории:
- стайлгайд
- дизайн\архитектура\нфт
- воркфлоу
- корректность
1-ю валидируют анализаторы, 2-ю ревью и спец. процессы, 3-ю ревью и тесты, 4-ю тесты

Evgeniy
25.07.2018
08:53:00
есть крутой доклад на эту тему:
https://www.youtube.com/watch?v=wf-BqAjZb8M

Google

Konstantin
25.07.2018
08:53:03
просто сталкивался с таким, когда было модно пихать лямбды - их херачили везде не особо понимая, что в большинстве мест они не нужны. зато было красиво и соответствовало логике, ну и было написано правильно. но работало не так, как должно было.

Evgeniy
25.07.2018
08:53:41
я уже наверное раз 5ый его сюда кидаю, но Реймонд пишет, что ревью кода - это не просто соответствие стайлгайдам и общим практикам, это работа над логикой

Shoo
25.07.2018
08:54:55
Ах, whatever.

Sergey
25.07.2018
09:08:13
кто с rspec хорошо знаком??

Richard
25.07.2018
09:08:41
Если хотите что-то спросить - сначала задайте вопрос.
Тот, кто в теме - сам вам ответит.
Не пытайтесь сначала завладеть вниманием всех, а потом спрашивать. Это не работает и только тратит ваше и наше время.

Sergey
25.07.2018
09:12:46
ох простите) Есть два discribe, в каждом из них по два it блока. Как сделать так что бы при ошибке в первом описании, в первом it следующий it не выполнялся, но перешло к следующему описанию, например:
describe 'first' do
it '1' { raise }
it '2' { true }
end
describe 'two' do
it '1' { true }
it '2' { true}
end
хода выполнения примерно такого хочу добится : 1.describe 'first' => it '1' return raise=> skip it '2' => describe 'two' => it '1' => it '2'

Philip
25.07.2018
09:48:32
describe 'first' do
it '1' { raise } do
it '2' { true }
end
?

Anton
25.07.2018
09:49:22
выглядит так, будто вы шаги для теста пытаетесь запихать в it блок
по идее *Проверка (блок it) не должен содержать никаких действий - только проверки;
тогда у вас вся логика действий будет в before хуках - а сами проверки в блоках it.
В этом случае провал на before автоматически зафейлит все вложенные структуры
ну по крайней мере у меня такое понимание )

Google

Sergey
25.07.2018
09:52:09
просто есть главное описание например создание ордера - и если он не создался нет смысла прогонять остальные иты

Anton
25.07.2018
09:53:14

Sergey
25.07.2018
09:53:55
не не селениум это отдельная тема тестов
у меня интеграция апи

Anton
25.07.2018
09:55:29
ну сохраняйте результат ответа сервера в before хуке в переменную;
потом ассертите её в it;
далее вложенный context: в нем в before:
skip if response != true

Sergey
25.07.2018
09:55:29
)

Anton
25.07.2018
09:55:31
как-то так )

Philip
25.07.2018
09:57:01

Sergey
25.07.2018
09:57:34
к сожелению но так не выйдет
мне чет мало верится что опции у rspec нет что бы при первом провале падал эксепшен и переходило к слдеюущему дискрайбу

Anton
25.07.2018
09:58:30
describe 'Orders' do
before { response = server.create_order }
it 'response is true?' { except(response == true).to be true }
context ' next steps' do
before { skip if response != true }
it ...
end
end

Sergey
25.07.2018
10:00:32
спасибо, попробую

Dzmitry
25.07.2018
10:02:15
Всем привет
У кого-нибудь есть Книга в PDF “Tap into mobile application testing”?

Richard
25.07.2018
10:03:22
Напоминаю, что за распространение пиратского контента чате пожизненный бан.

Sergey
25.07.2018
10:03:42
да , получилось
но мне ненравится что надо глобальную переменую использовать
не response = , а @response

Dzmitry
25.07.2018
10:04:11
Понятненько.
Но “Я просто спросить” (с)

Google

Darya
25.07.2018
11:59:07
Подскажите, пожалуйста, как правильно писать на английском: testing of mobile apps или testing mobile apps, или вообще лучше mobile apps testing?
Извините за глупый вопрос?сталкиваюсь с употреблением разных вариантов)

Арсений
25.07.2018
11:59:18
mobile apps testing

Darya
25.07.2018
11:59:31

Кирилл
25.07.2018
12:11:30
mobile apps testing
а тогда уточняющий вопрос: это единственный верный вариант из предложенных Дарьей или просто устоявшийся оборот?

Арсений
25.07.2018
12:14:06

M
25.07.2018
12:29:34
кто-нибудь работал с selenium через ноду - у меня ошибка промиса не могу нагуглить как исправить, что не так подскажите
Вот сам промис
driver.wait(until.elementLocated(By.css(createBtnClient)), 20000).then(element => {
return driver.wait(until.elementIsVisible(element), 20000);
}).then(button => {
button.click();
}).catch(error => {
console.log(error);
});
Ошибка
Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.

slvtn
25.07.2018
14:48:16
День добрый товарищи, кто нибудь сталкивался с тем что Chrome игнорирует аргументы запуска переданные через через ChromeOptions?

Влад
25.07.2018
14:59:42

slvtn
25.07.2018
15:02:31
private WebDriver webDriver;
final ChromeOptions options = new ChromeOptions();
options.addArguments("--user-data-dir=" + configuration.getUserDataDir(),"--window-size=0,0", "--window-position=-9999,0", "--no-sandbox", "--disable-gpu", "--disable-infobars", "--disable-notifications" );
this.webDriver = new ChromeDriver(options);
selenium-java 3.13.0 chrome v59 chromedriver 2.30
дебаг лог хрома https://pastebin.com/PP5r4LrL

Влад
25.07.2018
15:06:46

slvtn
25.07.2018
15:13:02

Ilya
25.07.2018
15:16:59
selenium той же версии? там как то смотрел сначала было через капабилити, потом задепрекейтили, и сделали через опции
вообще 59 и 67 не слабая такая разница)
селениум в этом плане капризный, по крайней мере на питоне

slvtn
25.07.2018
15:19:38

Ilya
25.07.2018
15:20:43
не знаю как в джаве, но в питоне точно была, хоть и не официально, но привязка версии селениума с версией браузера
то есть грубо говоря 59 хром можно было юзать только со 2 мажорной версией селениума

slvtn
25.07.2018
15:21:21
вообще 59 и 67 не слабая такая разница)
ну вообще в дебаг логе видно что значения попадают в desiredCapabilities, но, если посмотреть ниже то там видно строчку
[0.801][INFO]: Launching chrome: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ... --user-data-dir="C:\Users\KOVALE~1\AppData\Local\Temp\scoped_dir7868_17262

Google

slvtn
25.07.2018
15:22:05
Ща видимо придется тестить со старой версией библиотеки

Aleksandr
25.07.2018
15:33:32
есть такая проблемка: пишу groovy скрипт в джобе дженкинса, который должен взять файл из воркспейса и кое что с ним сделать. но джоба выполняется на слейве и падает строка, где я загружаю файл:
def testngFile = new File(workspace+"\\testng.xml")
в консоли ошибка:
FATAL: c:\jenkins\workspace\XmlParser\XmlParser\testng.xml (No such file or directory)
java.io.FileNotFoundException: c:\jenkins\workspace\XmlParser\XmlParser\testng.xml (No such file or directory)
в гугле прочитал, что можно как то через FilePath решить проблему, но работающего примера не нашел. кто знает как решить?

Ivan
25.07.2018
15:52:35
возможно нет такого воркспейса.
c:\jenkins\workspace\ [ XmlParser\XmlParser ] \testng.xml
сделай лист этой дириктории.

Ilya
25.07.2018
15:58:54
Груви скрипт в prebuild секции или непосредственно в сборке?
На слейве точно этот файл есть?

Aleksandr
25.07.2018
16:05:26

Ilya
25.07.2018
16:06:46
Важен порядок запуска скриптов. То есть если в пребилд секции пускать груви скрипт, то он запускается на мастере и только потом джоба летит на слейв, и там делает себе воркспейс и имеет к нему доступ

Aleksandr
25.07.2018
16:08:11
запускал уже в сборке

Ilya
25.07.2018
16:10:15
Чудеса)
Правда оно WORKSPACE
В идеале конечно скинуть побольше инфы. Переменные окружения сборки, сам скрипт
Так гадать можно вечность
Полный путь до файла, лог сборки итд

Ivan
25.07.2018
16:33:54

Ilya
25.07.2018
16:34:59
То есть система вам никогда не скажет no such file or directory если файл есть
Хотя это же винда, ничему не удивлюсь)
И опять же, раз человек пишет скрипты, то я надеюсь он посмотрел какой путь в трейсе и убедился что файл там и правда есть

Google

Кирилл LLirik 14lvl (Perovo)
25.07.2018
16:54:59
Мой опыт показывает, что пока в ошибке не написано что именно пошло не так - может быть всё что угодно. )))