Herus #4481 23 апреля 2014 (изменено) кто-нибудь писал юнит тесты на пхп? И автоматизировал прогон тестов с помощью Jenkins? Изменено 23 апреля 2014 пользователем Herus Поделиться сообщением Ссылка на сообщение
Двапой #4483 24 апреля 2014 Реинкарнация казика собственной персонойблин двапой не гноби плиз мы с друзяшками в фотофании прикалывались и сурфо у меня стоит :subj:сорри, попутал Мобильное приложение для продоты https://play.google....id=ru.prodota.m Поделиться сообщением Ссылка на сообщение
Гость inspectornaix #4484 24 апреля 2014 Есть у нас знатоки Selenium IDE и JS?как вяжется селениум и жс? В IDE можно юзать JS. Мне надо было разветвить одну проверку.. Но чет пока не допру как.Есть форма для создания документа. В зависимости от того какой выбор юзер сделал в начала -на след странице может быть поле "тематика". Я хотел при помощи JS сделать следующее: если на странице документа есть элемент "Тематика", то я его заполняю и перехожу на next step,если этого элемента нет, то не заполняю и так же иду на next step. делается при помощи доп подключенного файлика var gotoLabels= {}; var whileLabels = {}; // overload the oritinal Selenium reset function Selenium.prototype.reset = function() { // reset the labels this.initialiseLabels(); // proceed with original reset code this.defaultTimeout = Selenium.DEFAULT_TIMEOUT; this.browserbot.selectWindow("null"); this.browserbot.resetPopups(); } Selenium.prototype.initialiseLabels = function() { gotoLabels = {}; whileLabels = { ends: {}, whiles: {} }; var command_rows = []; var numCommands = testCase.commands.length; for (var i = 0; i < numCommands; ++i) { var x = testCase.commands[i]; command_rows.push(x); } var cycles = []; for( var i = 0; i < command_rows.length; i++ ) { if (command_rows[i].type == 'command') switch( command_rows[i].command.toLowerCase() ) { case "label": gotoLabels[ command_rows[i].target ] = i; break; case "while": case "endwhile": cycles.push( [command_rows[i].command.toLowerCase(), i] ) break; } } var i = 0; while( cycles.length ) { if( i >= cycles.length ) { throw new Error( "non-matching while/endWhile found" ); } switch( cycles[i][0] ) { case "while": if( ( i+1 < cycles.length ) && ( "endwhile" == cycles[i+1][0] ) ) { // pair found whileLabels.ends[ cycles[i+1][1] ] = cycles[i][1]; whileLabels.whiles[ cycles[i][1] ] = cycles[i+1][1]; cycles.splice( i, 2 ); i = 0; } else ++i; break; case "endwhile": ++i; break; } } } Selenium.prototype.continueFromRow = function( row_num ) { if(row_num == undefined || row_num == null || row_num < 0) { throw new Error( "Invalid row_num specified." ); } testCase.debugContext.debugIndex = row_num; } // do nothing. simple label Selenium.prototype.doLabel = function(){}; Selenium.prototype.doGotolabel = function( label ) { if( undefined == gotoLabels[label] ) { throw new Error( "Specified label '" + label + "' is not found." ); } this.continueFromRow( gotoLabels[ label ] ); }; Selenium.prototype.doGoto = Selenium.prototype.doGotolabel; Selenium.prototype.doGotoIf = function( condition, label ) { if( eval(condition) ) this.doGotolabel( label ); } Selenium.prototype.doWhile = function( condition ) { if( !eval(condition) ) { var last_row = testCase.debugContext.debugIndex; var end_while_row = whileLabels.whiles[ last_row ]; if( undefined == end_while_row ) throw new Error( "Corresponding 'endWhile' is not found." ); this.continueFromRow( end_while_row ); } } Selenium.prototype.doEndWhile = function() { var last_row = testCase.debugContext.debugIndex; var while_row = whileLabels.ends[ last_row ] - 1; if( undefined == while_row ) throw new Error( "Corresponding 'While' is not found." ); this.continueFromRow( while_row ); Поделиться сообщением Ссылка на сообщение
Гость rocker25 #4485 24 апреля 2014 Что такое JavaScript шаблонизатор и зачем он нужны? Поделиться сообщением Ссылка на сообщение
Двапой #4486 24 апреля 2014 это шаблонизаторы, нужны для шаблонизации Мобильное приложение для продоты https://play.google....id=ru.prodota.m Поделиться сообщением Ссылка на сообщение
Гость rocker25 #4487 24 апреля 2014 (изменено) а вообще нах Изменено 24 апреля 2014 пользователем rocker25 Поделиться сообщением Ссылка на сообщение
Двапой #4488 24 апреля 2014 да их не надо учить, там всего-то несколько выражений бывает, обычно это просто хтмл я пользовался dot.js - очень простой, сейчас пользуюсь lodash template - еще проще Мобильное приложение для продоты https://play.google....id=ru.prodota.m Поделиться сообщением Ссылка на сообщение
Гость inspectornaix #4490 24 апреля 2014 Ребят, такая проблема - в Selenium IDE цепляю текущую дату скриптом:var d=new Date(); d.getDate()+'-'+((d.getMonth()+1))+'-'+d.getFullYear();Месяц дергается как 4. А мне нужно чтоб он был 04.Такое возможно сделать? Поделиться сообщением Ссылка на сообщение
TheDeadSkin #4491 24 апреля 2014 думаю нельзя потому что ты скорее всего достаёшь integer, он не может иметь 0 перед ним Поделиться сообщением Ссылка на сообщение
Гость inspectornaix #4492 24 апреля 2014 Нашел: ((d.getMonth()) < 10 ? "0" + (d.getMonth()+1) : d.getMonth()+1) Поделиться сообщением Ссылка на сообщение
TheDeadSkin #4493 24 апреля 2014 вот так вроде самый простой способ (d.getMonth() > 9 ? d.getMonth().toString() : ("0" + d.getMonth())) Поделиться сообщением Ссылка на сообщение
Гость inspectornaix #4494 24 апреля 2014 Волнует теперь вопрос - что будет если месяц будет 12... Поделиться сообщением Ссылка на сообщение
Двапой #4496 24 апреля 2014 ("0" + (d.getMonth() + 1)).slice(-2) а зачем тебе +1?месяц с нуля считается, офк Мобильное приложение для продоты https://play.google....id=ru.prodota.m Поделиться сообщением Ссылка на сообщение
TheDeadSkin #4497 24 апреля 2014 тоесть getMonth() индексирует месяц с нуля?как тогда он может выйти 12? Поделиться сообщением Ссылка на сообщение
Гость inspectornaix #4498 24 апреля 2014 Спасиб ребят )) тоесть getMonth() индексирует месяц с нуля?как тогда он может выйти 12?Да, с нуля. Более убогих классов дат нет наверно нигде.. Поделиться сообщением Ссылка на сообщение
TheDeadSkin #4499 24 апреля 2014 так а в чём тогда проблема если после +1 цифра всегда будет в диапазоне 1-12? Поделиться сообщением Ссылка на сообщение
Двапой #4500 24 апреля 2014 Да нормальный класс, просто все по минимуму. Мобильное приложение для продоты https://play.google....id=ru.prodota.m Поделиться сообщением Ссылка на сообщение