2010-02-03 9 views
16

Używam Netbeans 6.8 i najlepszym sposobem uruchomienia moich testów JUnit z IDE wydaje się kliknięcie prawym przyciskiem myszy klasy pod Test Packages i kliknięcie Test FileTestowanie metody zamiast testowania całego pliku w Netbeans w/JUnit

W Eclipse możliwe jest zawężenie zakresu do testowania pojedynczej metody w danej wiązce testowej. Jak mogę przetestować tylko jeden indywidualny test z uprzęży w Netbeans?

+0

W IntelliJ to możliwe, aby kliknąć prawym przyciskiem myszy na nazwę testu sposobie i wybierz polecenie Uruchom, być może istnieje podobny sposób uruchomienia go w Netbeans? – crunchdog

+0

Można zobaczyć metody i kliknąć je prawym przyciskiem myszy w widoku nawigatora Netbeans, ale z tego co wiem, nie ma elementu menu kontekstowego do przetestowania tej metody. Dzięki, wciąż kopie :) – Maciek

+0

NetBeans ma teraz właśnie taką funkcję; zobacz moją odpowiedź poniżej. –

Odpowiedz

10

UPDATE: NetBeans obsługuje to (np. Patrz NetBeans 6.8). Kliknij prawym przyciskiem myszy zakończony lub nieudany test, a następnie kliknij "Uruchom ponownie" lub "Debuguj". Lub kliknij prawym przyciskiem myszy w edytorze i kliknij Test skupiony na uruchamianiu/debugowaniu.

Old:

O ile mi wiadomo nie jest to możliwe. A może faceci NetBeans mieli na myśli, że zawsze wszystkie testy powinny przejść na jedną jednostkę. Wiem, że narzędzia nie powinny ograniczać programistów, ale jeśli jedna metoda trwa zbyt długo - może powinieneś rozważyć osobny test integracji?

Zobacz także this post. (BTW: w przypadku projektów z uruchomionymi testami jednostki jest możliwa możliwe ...)

+0

Dzięki za powrót i aktualizację :) – Maciek

+0

bez problemu. jako użytkownik netbeanu to też mnie niepokoiło. czy to działa dla ciebie? wydaje się, że jest dostępna tylko dla maven projektów !? – Karussell

+0

Teraz działa nawet bez Maven. Zobacz moją odpowiedź. –

12

W NetBeans 7.1, otwórz plik testu jednostki, kliknij prawym przyciskiem myszy w ramach określonego testu jednostkowego i wybierz "Run Focused Test".

+1

To wciąż jest prawda w NB 8. –

1

Netbeans 7.1 "Run Focused Test" nie działa z moją kompilacją, więc używam grupy testowej do oznaczania testów, które chcę uruchomić.

@Test(groups={"DEBUG"}) 

Można skonfigurować Netbeans aby uruchomić te testy dodając -Dgroups=DEBUG do „Debug test pliku” działania we właściwościach projektu.

Uwaga: są to metody TestNG uruchamiane z użyciem maven/murh.

+0

Czy zdarzyło Ci się, że to działa Roger? Nagle mój projekt nie będzie przeprowadzał testów skoncentrowanych - nie jestem pewien dlaczego - mamy kilku programistów na temat projektu (w tym pisanie testów JUnit). Ale test, który zrobiłem, nie będzie działał. Używam Netbeans 7.1.2 – Andez

+0

Tak, używam @Test (groups = {DEBUG}) do uruchamiania poszczególnych testów. Konfiguruję NetBeans do używania -Dgroups = DEBUG i kiedy uruchamiam "Debug Test File". Działa dobrze i dodaję również inne właściwości systemu do debugowania (np. Browser = chrome). Uwaga: atrybut groups jest dla TestNG. JUnit ma własne adnotacje grupujące. Ale tak, moje Netbeans nie uruchamia skoncentrowanych testów po wyjęciu z pudełka - myślałem, że to dlatego, że używam wewnętrznych klas dla moich przypadków testowych (http://www.ninthavenue.com.au/how-to-use-inner- class-for-your-unit-tests). –

0

W odpowiedzi na Roger Keays były „Run Koncentruje test” nie działa:

Opcja „Run Koncentruje Test” został wyszarzone na moim projekcie też, bo nie było działanie pod nazwą „run.single. metoda "w pliku project.xml.

Obejście aby dostać pracy:

1) utworzyć nową "run.single.method" działanie w pliku project.xml (można skopiować "run.single" działania).

project.xml fragment:

<action name="run.single.method"> 
<script>nbproject/ide-file-targets.xml</script> 
<target>run.single.method</target> 
<context> 
    <property>run.class</property> 
    <folder>test/src</folder> 
    <pattern>\.java$</pattern> 
    <format>java-name</format> 
    <arity> 
    <one-file-only/> 
    </arity> 
    </context> 
</action> 

2) stworzyć nową "run.single.method" target w ide-file-targets.xml (można skopiować „run-wybrany-file-in- src ") i upewnij się, że tag testowy ma parametr" "metody", używając właściwości "$ {method}".

ide-file-targets.xml fragment:

<target name="run.single.method" depends="compile"> 
<fail unless="run.class">Must set property 'run.class'</fail> 
<junit maxmemory="256m" fork="true" haltonerror="true" haltonfailure="true" printsummary="on" jvm="${jdk.dir}/bin/java" showoutput="true"> 
    <sysproperty key="build.basedir" value="${basedir}"/> 
    <!-- method attribute makes the selected method to be unit tested only --> 
    <test name="${run.class}" methods="${method}"/> 
    <formatter type="plain" usefile="false"/> 
    <classpath refid="CLASSPATH"/> 
</junit> 
</target> 

Teraz można skorzystać z menu myszy Right "Run koncentruje testu".

Opcja „Run koncentruje próbę” może również być tymczasowe być wyszarzone, gdy projekt jest skanowanie

+0

Handy wiedzieć, dzięki. –

0

Okrywać ktoś zastanawia badania ostrości jest również możliwe poprzez IntelliJ klikając prawym przyciskiem myszy na konkretnym teście i uruchomić