Исключение поднято с утверждениями unittest - PullRequest
0 голосов
/ 19 августа 2011

Когда я запускаю юнит-тест, где я проверяю равенство двух целых чисел, я получаю исключение ошибки утверждения вместо юнит-теста, сообщающего о сбое, и затем переход к следующему тесту. Вот код теста (значительно упрощенный, чтобы доказать это).

import unittest

class TestClass(unittest.TestCase):

    def test_method(self):
        myVariable = 1
        self.assertTrue(myVariable==0)

if __name__ == '__main__':
    unittest.main()

Трассировка выглядит следующим образом:

builtins.AssertionError: False is not true
File "C:\Dev\Volleyball\test.py", line 10, in <module>
  unittest.main()
File "C:\Program Files\python32\Lib\unittest\main.py", line 124, in __init__
  self.runTests()
File "C:\Program Files\python32\Lib\unittest\main.py", line 270, in runTests
  self.result = testRunner.run(self.test)
File "C:\Program Files\python32\Lib\unittest\runner.py", line 168, in run
  test(result)
File "C:\Program Files\python32\Lib\unittest\suite.py", line 67, in __call__
  return self.run(*args, **kwds)
File "C:\Program Files\python32\Lib\unittest\suite.py", line 105, in run
  test(result)
File "C:\Program Files\python32\Lib\unittest\suite.py", line 67, in __call__
  return self.run(*args, **kwds)
File "C:\Program Files\python32\Lib\unittest\suite.py", line 105, in run
  test(result)
File "C:\Program Files\python32\Lib\unittest\case.py", line 498, in __call__
  return self.run(*args, **kwds)
File "C:\Program Files\python32\Lib\unittest\case.py", line 446, in run
  self._executeTestPart(testMethod, outcome, isTest=True)
File "C:\Program Files\python32\Lib\unittest\case.py", line 391, in _executeTestPart
  function()
File "C:\Dev\Volleyball\test.py", line 7, in test_method
  self.assertTrue(myVariable==0)
File "C:\Program Files\python32\Lib\unittest\case.py", line 527, in assertTrue
  raise self.failureException(msg)

Я что-то не так делаю или неправильно понимаю, как работают тестовые утверждения?

Для записи я использую Python 3.2.1 в Windows 7.

TIA, Алан

Ответы [ 2 ]

0 голосов
/ 30 августа 2011

Вместо self.assertTrue (myVariable == 0) попробуйте использовать self.assertEqual (myVariable, 0)

0 голосов
/ 19 августа 2011

Правильно - благодаря @agf я достиг приемлемого компромисса. Я удалил AssertionError из раздела «Всегда сообщать» в «Отладчике: Исключения», и теперь отладчик больше не останавливается на утверждении. Недостатком является то, что хотя это нормально при выполнении тестового сценария (поскольку я увижу результаты в списке ошибок), при запуске «настоящей» программы мне придется следить за «Отладочным вводом / выводом» вывод для просмотра утверждений.

Спасибо всем, кто ответил.

Alan

...