Django Pruebas de ejecución Orden y mesas -- django campo con unit-testing campo con testing camp Relacionados El problema

Django testing execution order and tables


2
vote

problema

Español

En situaciones en las que una prueba ejecutó y cambió las tablas de la base de datos de prueba, ¿volverían las tablas de base de datos al estado original después de cada prueba? Si no, cómo debo saber en qué orden se ejecutan las pruebas para predecir las tablas de la base de datos del estado. Por ejemplo,

  Datagridview3  
Original en ingles

In situations where a test executed and changed test database tables, would database tables return to original state after each test? If not, how should I know in what order the tests are executed so that I will predict the state of database tables. For example,

class SimpleTest(Testcase):     def test_insert(self):         # testing to see if data correctly added to database      def test_other_thing(self):         # does insered data available here? 
        

Lista de respuestas

2
 
vote
vote
La mejor respuesta
 

La base de datos se retrasa al final de cada prueba.

 

The database is rolled back at the end of every test.

 
 
     
     
2
 
vote

Para el aislamiento de prueba adecuado, cuando las pruebas tocan la base de datos, debe heredar desde django.test.testcase, que maneja el aislamiento del estado de la base de datos entre una ejecución de la prueba y otra.

Nunca, siempre, depende de la orden de ejecución de la prueba: Si lo necesita, lo está haciendo mal, porque está violando el aislamiento de la prueba.

Recuerde que no necesita usar solo unittest.testcase o solo django.test.testcase: puede mezclarlos según sea necesario (no necesita este último si su prueba no toca la base de datos).

Tenga en cuenta que django.test.testcase usa transacciones para acelerar la limpieza del estado de la base de datos después de cada prueba, por lo que si necesita probar una transacción de base de datos, debe usar django.test.transactiontestcase (consulte https://docs.djangoproject.com/en/dev/topics/testing/#testcase )

 

For proper test isolation, when tests touch the database, you need to inherit from django.test.TestCase which handles database state isolation between one test execution and another.

Never, ever, depend on test execution order: if you need to, you are doing it wrong, because you are violating test isolation.

Remember that you don't need to use only unittest.TestCase or only django.test.TestCase: you can mix them as needed (you don't need the latter if your test does not touch the database).

Note that django.test.TestCase use transactions to speed up database state cleanup after each test, so if you need to actually test a database transaction you need to use django.test.TransactionTestCase (see https://docs.djangoproject.com/en/dev/topics/testing/#testcase)

 
 

Relacionados problema

64  Paquetes de prueba de unidad .NET [CERRADO]  ( Net unit testing packages ) 
cerrado. Esta pregunta no cumple con pautas de desbordamiento de pila . Actualmente no está aceptando respuestas. ...

7  ¿Dónde almacena los rieles datos creados al guardar los objetos de ActiveRecord durante las pruebas?  ( Where does rails store data created by saving activerecord objects during tests ) 
¿Dónde almacena los rieles los datos creados al guardar los objetos de ActiveRecord durante las pruebas? Pensé que sabía la respuesta a esa pregunta: obviam...

29  ¿Cómo comenzar a escribir una herramienta de cobertura de código? [cerrado]  ( How to get started writing a code coverage tool ) 
cerrado. Esta pregunta no cumple con pautas de desbordamiento de pila . Actualmente no está aceptando respuestas. ...

0  Las pruebas unitarias de rieles fallan debido a una restricción única en Schema_Migrations  ( Rails unit tests fail because of unique constraint on schema migrations ) 
Estoy tratando de ejecutar rake test:units y sigo recibiendo esto: Mysql::Error: Duplicate entry '2147483647' for key 1: INSERT INTO `ts_schema_migration...

26  Cómo usar combinaciones de conjuntos como datos de prueba  ( How to use combinations of sets as test data ) 
Me gustaría probar una función con una tupla de un conjunto de casos de flecos y valores normales. Por ejemplo, al tiempo que prueba una función que devuelve ...

0  Solución de prueba de código abierto o libre [cerrado]  ( Open source or free testing solution ) 
cerrado. Esta pregunta no cumple con pautas de desbordamiento de pila . Actualmente no está aceptando respuestas. ...

3  ¿Cómo comprobar la fuga de la memoria?  ( How to check memory leak ) 
Es posible verificar la fuga de la memoria sin entrar en el código. Tengo la solicitud conmigo y quiero verificar si hay una pérdida de memoria o no. En mi ...

17  Tiempo de falsificación sin cambiar el reloj del sistema de Windows  ( Faking time without changing windows system clock ) 
¿Alguien sabe de una herramienta de Windows para reportar fechas / horarios falsos a un proceso? Aparentemente hay programas de Linux que se pueden usar par...

43  ¿Cuáles son las pruebas de la unidad y las pruebas de integración, y qué otros tipos de pruebas debo saber?  ( What are unit testing and integration testing and what other types of testing s ) 
He visto a otras personas mencionar varios tipos de pruebas en el desbordamiento de la pila. Los que puedo recordar son pruebas de unidad y pruebas de integ...

-1  ¿Qué tecnología es adecuada para esta aplicación? [cerrado]  ( What technology is suitable for this application ) 
cerrado . Esta pregunta es basada en opinión . Actualmente no está aceptando respuestas. ¿...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos