wiki:KuinkaPikainenComtest
Last modified 7 years ago Last modified on 2010-12-26 20:36:24

Yksinkertaisten Comtest-testien suorittaminen yhdellä komennolla bash-ympäristössä

Yksittäisten luokkien Comtest-testien ajamista voi nopeuttaa vähäisellä vaivalla pienellä shell-skriptillä. Menetelmä sopii pienten ohjelmien (joidenkin demovastauksien) ohjelmointiin Linux-ympäristössä tekstieditorilla, mutta sopivilla muutoksilla skriptiä voi toki laajentaa koskettamaan laajempiakin ohjelmia.

Valmistelut

  • Asenna ensin Comtest ohjeiden mukaisesti ja lue myös sivu käytöstä ilman pluginia
  • Varmista että tarvittavat tiedostot ovat ympäristömuuttujissa:
    #Polut luonnollisesti vaihtelevat koneittain
    echo 'CLASSPATH="$CLASSPATH:/home/username/ohj2/Ali.jar:/usr/share/junit-4/lib/junit.jar:/usr/share/hamcrest-core/lib/hamcrest-core.jar"' >> ~/.bash_profile
    
  • Luo kansio, joka on PATH-muuttujassa ja jonne voi tallentaa suoritettavia ohjelmia.
    mkdir ~/bin
    echo 'PATH="$PATH:~/bin"' >> ~/.bash_profile
    
  • Lataa päivitetyt ympäristömuuttujat joko kirjautumalla uudelleen tai kirjoittamalla
    source ~/.bash_profile
    

Bash-skripti

Seuraava skripti ei suorita minkäänlaista virheentarkistusta, eli toimivuus on odotettavissa ainoastaan mikäli ohjelma ja testit kääntyvät oikein. Esimerkkitapauksessa skriptin nimenä toimii 'jtest'.

  • Avaa tekstieditorilla kohdetiedosto, esim:
    vim ~/bin/jtest
    
  • Kirjoita jotain seuraavankaltaista tiedostoon:
    #!/bin/bash
    PREF="jtest:"      #etuliite skriptin tulosteille
    TARGET=${1%.java}  #riisutaan pääte
    
    echo "${PREF} Käännetään ${TARGET}.java ..."
    javac ${TARGET}.java
    
    echo "${PREF} JUnit-testien generointi Comtestilla ..."
    java -jar /home/username/ohj2/comtest.jar ${TARGET}.java
    
    echo "${PREF} Käännetään JUnit-testi ${TARGET}Test.java ..."
    javac ${TARGET}Test.java
    
    echo "${PREF} Ajetaan yksikkötesti ..."
    java org.junit.runner.JUnitCore ${TARGET}Test
    
  • Lopuksi vielä tee tekstitiedostosta suoritettava
    chmod +x ~/bin/jtest
    

Käyttö

Jos valmistelut sujuivat onnistuneesti, käytön pitäisi toimia seuraavasti:

jtest Yksikko.java

Joka tuottaa esimerkiksi seuraavannäköistä ulostuloa:

jtest: Käännetään Yksikko.java ...
jtest: JUnit-testien generointi Comtestilla ...
Yksikko.java => /home/username/ohj2/demo5/YksikkoTest.java ok
jtest: Käännetään JUnit-testi YksikkoTest.java ...
jtest: Ajetaan yksikkötesti ...
JUnit version 4.6
.
Time: 0.003

OK (1 test)