В настоящее время у меня есть тестовый пример, который проходит через словарь словарей, каждый из которых содержит отдельное значение, которое я хочу протестировать на веб-странице (я использую Selenium Webdriver, хотя это необязательно относящихся к вопросу). Этот тестовый пример по существу проверяет, что все возможные пути покупки продукта работают правильно, а это примерно 200 различных путей. Я хочу, чтобы код был простым и не проводил проверку для каждого. Ниже приведен пример того, что я сделал, чтобы сократить код:Soft Asserts in unittest python
self.templates = {"sales": self.sales", ...)
self.template_keys = ["sales",....]
self.sales - {"locator1": "<locataor info>, ...)
.... <more dictionaries>
for key in self.template_keys:
for template in self.templates[key]:
<do purchase path in selenium webdriver>
assert end_url == expected_end_url # Would like failure to not end test
Мой вопрос заключается в том, чтобы получить уверенно утверждать, вложенная цикл не фатально неудачу и перейти к следующему шагу. У меня есть read this stackoverflow article, и это похоже на то, что он решил сделать свое дело, не давая никакой информации о том, что он сделал. Я знаю, что это анти-шаблон, но мне не стоит писать все отдельно. Мне интересно, есть ли у кого-то хорошее решение, что работает like soft asserts in Groovy.
попробуйте использовать ['assertEqual()'] (http://docs.python.org/dev/library/unittest.html#unittest.TestCase.assertEqual) – Serdalis
Идея состоит в регистрации сбоя, но продолжайте идти, поэтому вы тоже видите другие неудачи, верно? – user2357112
Будет ли это держать утверждение от остановки теста при неудаче? – derigible