Rumah  >  Artikel  >  Java  >  Bagaimana untuk Mencuba Semula Ujian JUnit yang Gagal Serta-merta?

Bagaimana untuk Mencuba Semula Ujian JUnit yang Gagal Serta-merta?

Linda Hamilton
Linda Hamiltonasal
2024-11-02 04:55:02940semak imbas

How to Retry Failed JUnit Tests Instantly?

Cuba Semula Ujian JUnit yang Gagal Serta-merta

Cuba menangani kegagalan ujian yang jarang berlaku disebabkan tindakan sensitif masa dalam suite ujian yang besar boleh mengecewakan. Berita baiknya ialah anda boleh melaksanakan TestRule untuk mencuba semula ujian yang gagal.

Mencipta RetryRule

TestRule memberi anda kawalan ke atas pelaksanaan ujian. Untuk mencipta RetryRule, tentukan kelas seperti ini:

<code class="java">public class RetryTest {
    public class RetryRule implements TestRule {
        ...
        public Statement apply(Statement base, Description description) {
            ...
        }
        ...
    }
}</code>

Dalam kaedah gunakan, masukkan logik cuba semula anda di sekeliling panggilan ujian menggunakan base.evaluate():

<code class="java">public Statement apply(Statement, Description) {
    return new Statement() {
        @Override
        public void evaluate() throws Throwable {
            ...
            for (int i = 0; i < retryCount; i++) {
                ...
            }
            ...
        }
    };
}</code>

Menggunakan RetryRule

Anotasi kelas ujian anda dengan Peraturan seperti ini:

<code class="java">...
@Rule
public Retry rule = new Retry(3);
...</code>

Pilihan Lain

TestRunner Tersuai:

Sebagai alternatif, anda boleh membuat TestRunner tersuai yang memanjangkan BlockJUnit4ClassRunner dan mengatasi runChild() untuk melaksanakan mekanisme cuba semula.

Nota:

  • Peraturan Cuba Semula membenarkan anda untuk menentukan bilangan percubaan semula, manakala TestRunner tersuai tidak.
  • Anda juga boleh menggunakan anotasi untuk menggunakan logik cuba semula secara selektif.

Atas ialah kandungan terperinci Bagaimana untuk Mencuba Semula Ujian JUnit yang Gagal Serta-merta?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn