Tenha cuidado com os nomes de teste em Python

Uma nota rápida para dizer que a cópia preguiçosa pode causar problemas. Certifique-se de que todos os nomes de teste sejam diferentes na mesma classe de teste, caso contrário, cada teste não será relatado independentemente.

from unit test import TestCase


class TestFoo(TestCase):

def test_somethingA(self):
self.assertEqual(1, 2)

def test_somethingB(self):
self.assertEqual(1, 3)

def test_somethingA(self):
self.assertEqual(1, 4)

O Python relatará apenas que você tem 2 testes com falha, embora haja 3 testes com falha, pois o nome test_somethingA é repetido duas vezes (embora o próprio código de teste seja realmente diferente).

Como @owais corretamente aponta, isso acontece se você redefinir um método de classe dentro de uma classe, ou mesmo se você redefinir uma função dentro do mesmo módulo.

É especialmente importante ficar atento ao testar, pois a repetição de testes com pequenas alterações tende a ser uma ocorrência frequente ao escrever testes de unidade e também testes de sistema / integração.