Domanda

Sto esaminando l'utilizzo di test unitari paralleli per i nostri progetti e mi chiedevo quali fossero le migliori pratiche per scrivere effettivamente tali test unitari paralleli.

È stato utile?

Soluzione

Se per test unitari paralleli intendi test che possono essere eseguiti contemporaneamente, il consiglio più importante che posso darti è di evitare i cosiddetti dispositivi condivisi.

Il libro xUnit Test Patterns descrive il termine Fixture, che in pratica può essere descritto come l'intero contesto in cui viene eseguito ciascun caso di test, compresi i dati persistenti e transitori .

Un dispositivo condiviso indica che i casi di test condividono un certo contesto durante l'esecuzione. Se tale contesto è mutevole, possono verificarsi condizioni di razza.

Mantenere immutabile un dispositivo condiviso (un cosiddetto dispositivo condiviso immutabile) consentirà di eseguire test in parallelo, ma ancora meglio, i cosiddetti dispositivi freschi (dove ogni caso di test ha il proprio dispositivo) sono thread-safe da definizione, poiché solo il caso di test stesso ha accesso al dispositivo.

Esempi di dispositivi condivisi includono qualsiasi tipo di test che utilizza un database condiviso, ma includono anche test in cui si ha uno stato in memoria statico in System Under Test (SUT) o i test stessi, quindi è necessario evitare che .

Dovresti anche tenere presente che se il tuo SUT accede a dati condivisi (statici), tale accesso stesso deve essere thread-safe.

Altri suggerimenti

Alcuni link interessanti per te:

Organizza i test delle unità

Esecuzione di test unitari in parallelo

Ci sono alcune risposte interessanti in queste domande StackOverflow. Spero che questo possa aiutare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top