QA Notes
Заметки одного QA
четверг, 7 июля 2016 г.
среда, 25 декабря 2013 г.
@staticmethod in nosetests
Оказывается nosetests 1.2.1 имеет проблемы с обработкой функций обернутых staticmethod декораторами.
При запуске класса он выбрасывает
При запуске класса он выбрасывает
Traceback (most recent call last):После легкого оборачивания строки 93 из PYTHON/site-packages/nose/pyversion.py узнаем, что именно метод тестового класса, обернутый декоратором staticmethod вызвал проблему. Для меня было не критично и я просто убрал это.
File "PYTHON/site-packages/nose/loader.py", line 495, in makeTest
return self._makeTest(obj, parent)
File "PYTHON/site-packages/nose/loader.py", line 542, in _makeTest
return self.loadTestsFromTestCase(obj)
File "PYTHON/site-packages/nose/loader.py", line 466, in loadTestsFromTestCase
return super(TestLoader, self).loadTestsFromTestCase(testCaseClass)
File "PYTHON/unittest.py", line 547, in loadTestsFromTestCase
testCaseNames = self.getTestCaseNames(testCaseClass)
File "PYTHON/site-packages/nose/loader.py", line 112, in getTestCaseNames
cases = filter(wanted, dir(testCaseClass))
File "PYTHON/site-packages/nose/loader.py", line 111, in wanted
return sel.wantMethod(item)
File "PYTHON/site-packages/nose/selector.py", line 175, in wantMethod
plug_wants = self.plugins.wantMethod(method)
File "PYTHON/site-packages/nose/plugins/manager.py", line 99, in __call__
return self.call(*arg, **kw)
File "PYTHON/site-packages/nose/plugins/manager.py", line 167, in simple
result = meth(*arg, **kw)
File "PYTHON/site-packages/nose_unittest/plugin.py", line 25, in wantMethod
if not issubclass(method.im_class, unittest.TestCase):
File "PYTHON/site-packages/nose/pyversion.py", line 93, in __getattr__
return getattr(self._func, attr)
AttributeError: 'function' object has no attribute 'im_class'
вторник, 5 февраля 2013 г.
пятница, 1 февраля 2013 г.
XPath как условие для выбора элемента с помощью XPath
Недавно обнаружил для себя интересный вариант записи xpath. Т.е. он не такой и новый, но я увидел первый раз и не могу не поделиться.
//tr[td[2]//div[text()='some text']]
Сначала меня смутила такая запись, тем более, что на ней у меня и падал тест. Но потом немного покопавшись я понял, что это лаконично как все гениальное:
выбрать такую строку таблицы (tr), у которой во второй ячейке есть на любом уровне блок с текстом 'some text'
Т.е. накладывается не просто условия значения атрибута, а условия наличия в потомках определенного элемента через задание его xpath. Уровень вложенности не ограничен
//tr[td[2]//div[text()='some text']]
Сначала меня смутила такая запись, тем более, что на ней у меня и падал тест. Но потом немного покопавшись я понял, что это лаконично как все гениальное:
выбрать такую строку таблицы (tr), у которой во второй ячейке есть на любом уровне блок с текстом 'some text'
Т.е. накладывается не просто условия значения атрибута, а условия наличия в потомках определенного элемента через задание его xpath. Уровень вложенности не ограничен
вторник, 20 ноября 2012 г.
Software development reality
Все уже видели много раз картинку про project management и качели. Но это что-то новенькое и котэ присутствует :) Взял отсюда взял.
Подписаться на:
Сообщения (Atom)