Czy jest jakiś sposób, aby zbudować wszystkie przypadki testowe z Junit na razu? W Javie widziałem kilka rozwiązań wykonujących wszystkie testy w pakiecie. Ale chcę wykonać wszystkie przypadki testowe dla wszystkich pakietów. Czy to możliwe? Jak mam zrobić w pliku build.xml?

2
kokoro 25 luty 2019, 10:09

2 odpowiedzi

Najlepsza odpowiedź

Możesz uruchomić wszystkie testy lub konkretne testy filtrowane przez nazwę pakietu lub nazwy klasy. Oto przykład <batchtest> zrobiony z Ręczna zadania Junit :

<junit printsummary="yes" haltonfailure="yes">
    <classpath>
        <pathelement location="${build.tests}"/>
        <pathelement path="${java.class.path}"/>
    </classpath>

    <formatter type="plain"/>

    <test name="my.test.TestCase" haltonfailure="no" outfile="result">
        <formatter type="xml"/>
    </test>

    <batchtest fork="yes" todir="${reports.tests}">
        <fileset dir="${src.tests}">
            <include name="**/*Test*.java"/>
            <exclude name="**/AllTests.java"/>
        </fileset>
    </batchtest>
</junit>

Możesz dostosować elementy <include name=""/> / <exclude name=""/> do swoich potrzeb lub dodać więcej zawierać / wykluczyć elementy. Następnie można utworzyć różne mrówki <target/> s dla różnych testów takich jak <target name="all-tests"/>, <target name="package-foo-tests"/> itd

0
Freddy 25 luty 2019, 07:33

Nie mogę jeszcze dodać komentarza, dlatego publikuję tę odpowiedź.

Myślę, czego potrzebujesz, to klasa apartamentu testowego.

To idzie coś w rodzaju następującego.

package com.emeter.test.predeploy.sdm.common;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

import com.emeter.test.predeploy.sdm.svc.TestOutdatedComponentRpt;
import com.emeter.test.predeploy.sdm.svc.TestSubstationSvc;
import com.emeter.test.predeploy.sdm.svc.TestSvmComponentSvc;
import com.emeter.test.predeploy.sdm.svc.TestSvmNotificationSvc;

@RunWith(Suite.class)
@SuiteClasses({

TestSubstationSvc.class,
TestSvmComponentSvc.class,
TestSvmNotificationSvc.class,
TestOutdatedComponentRpt.class
 }
)
public class TestSuite {

}

Możesz zaimportować wymaganą klasę z dowolnego pakietu, a następnie uruchomić je na raz. Zajęcia zawierające przypadki testowe są umieszczane pod adresem adnotacji "Suiteclasses".

Edytuj: Właśnie uruchomisz to jak każdy inny plik testowy w Eclipse.

0
backbenchor 25 luty 2019, 07:26