ComTest asennus ja käyttö Linuxilla

Tässä ohjeessa käydään vaiheittain läpi ComTestin asennus ja käyttö Linux-pohjaisilla käyttöjärjestelmillä. Windows- ja Mac-käyttäjille löytyy omat ohjeet. Ennen kuin asennat ComTestin, asenna muut kurssin työkalut tietokoneellesi ja varmista niiden toiminta.

1. Javan asennus

Asenna tietokoneellesi Java. Java on eräs ohjelmointikieli, joka muistuttaa paljon kurssilla käyttämäämme C#-kieltä. ComTest on kirjoitettu Javalla, joten sen käyttö edellyttää Javan asentamisen.

Java löytyy todennäköisesti oman käyttöjärjestelmäsi repositorioista. Esimerkiksi Ubuntulla javan voi asentaa seuraavalla komennolla:

sudo apt install openjdk-17-jdk

Jos kuitenkaan et voi asentaa Javaa oman käyttöjärjestelmäsi pakettienhallintatyökalulla, voit ladata Javan täältä ja asentaa Javan manuaalisesti.

Voit kokeilla onnistuiko asennus suorittamalla seuraavan komennon komentoriviltä:

java -version

Komentoriville tulisi tulostua tietoa Javan versiosta.

2. ComTestin asennus ja configurointi

Seuraavaksi lataa ComTest täältä.

Mene omaan kotihakemistoosi:

cd ~

Luodaan uusi jars-niminen kansio, johon ComTest.jar-tiedosto siirretään:

mkdir jars

Siirrä seuraavaksi ladattu ComTest.jar-tiedosto jars-kansioon. Esimerkiksi jos tallensit ComTest.jar-tiedoston Downloads-kansioosi:

mv Downloads/ComTest.jar jars

Nyt ComTest.jar löytyy polusta ~/jars/ComTest.jar.

Avaa seuraavaksi .bashrc-tiedosto jollain tekstieditorilla. Tämä tiedosto löytyy kotihakemistostasi.

Kopioi tiedoston loppuun seuraava rivi:

alias comtest='java -jar ~/jars/ComTest.jar'

HUOM: sulje tässä välissä avoinna oleva komentorivi ja avaa se uudelleen, jotta juuri tekemämme muutokset astuvat voimaan.

Kokeile sitten antaa komento:

comtest

Tämän komennon pitäisi nyt antaa seuraavanlainen tuloste:

Run: java comtest.ComTest [language] [backend] filename(s)
or: java -jar comtest.jar [language] [backend] filename(s)

Supported languages are: Java, C++, C#, C# projects and solutions
The language is detected automatically for every file if unspecified.

The backend parameter is currently used only by C# test generator.
Supported values for it are mstest and nunit.

If you want to specify which projects to process in a C# solution, you can use
java -jar comtest.jar Solution.sln:proj1,proj2

Siirrytään seuraavaksi tekemään ensimmäinen testiohjelma.

3. ComTestin käyttö komentoriviltä

Siirry seuraavaksi kansioon, jossa säilytät kurssin tehtäviä. Tämä voi esimerkiksi olla Demossa 1 tehty kansio ~/kurssit/ohj1.

cd ~/kurssit/ohj1

Tehdään tähän kansioon uusi alikansio, jossa harjoittelemme ComTestin käyttöä:

mkdir comtest-asennus

Siirry uuteen kansioon:

cd comtest-asennus

Tee sitten uusi projekti, jolla harjoittelemme ComTestin käyttöä:

dotnet new ConsoleMain -n ComTestAsennus

HUOM jos et ole asentanut Jypelin templateja, tee se nyt komennolla dotnet new -i Jypeli.Templates. Jos olet tehnyt 1. pääteohjauksen HelloWorld-tehtävän, ei tämä ole tarpeen.

Kopioi alla oleva koodi tiedostoon ComTestAsennus/ComTestAsennus.cs:

using System;
using System.Text;
using System.Linq;
using System.Collections.Generic;


/// @author Valtteri Rajalainen
/// @version 20.9.2021
/// <summary>
/// Esimerkki ComTestin käytöstä Linuxilla.
/// </summary>
public class ComTestEsimerkki
{
    /// <summary>
    /// Pääohjelma, tulostaa yksinkertaisen laskutoimituksen.
    /// </summary>
    public static void Main()
    {
        int a = 1;
        int b = 2;
        int tulos = Summa(a, b);
        Console.WriteLine($"{a} + {b} == {tulos}");
    }

    /// <summary>
    /// Laskee kahden kokonaisluvun summan.
    /// </summary>
    /// <param name="a">Ensimmäinen luku</param>
    /// <param name="b">Toinen luku</param>
    /// <returns>Lukujen summa</returns>
    /// <example>
    /// <pre name="test">
    /// Summa(1, 1) === 2;
    /// Summa(0, 0) === 0;
    /// Summa(-10, -5) === -15;
    /// </pre>
    /// </example>
    public static int Summa(int a, int b)
    {
        return a + b;
    }
}

Seuraavaksi aja komento:

comtest ComTestAsennus/ComTestAsennus.csproj

Muokkaa polkua tietysti sen mukaan missä olet komentorivillä suhteessa testattavaan projektiin. ComTest luo uuden projektin, tässä tapauksessa nimeltään ComTestAsennusTest. Siirry muodostuneeseen kansioon:

cd ComTestAsennusTest

Katso mitä tiedostoja on syntynyt:

ls -la

ComTest loi tähän kansioon uuden C# projektin, ComTestAsennusTest.csproj, sekä testitiedoston ComTestAsennusTest.cs, joka luotiin automaattisesti ComTestAsennus.cs tiedoston pohjalta.

Voit suorittaa testit seuraavalla komennolla:

dotnet test

Tulosteen viimeinen rivi kertoo, montako testiä ajettiin ja montako tuotti odotetun tuloksen. Voit selata tulostetta ylöspäin, se kertoo erilaista tietoa ajettuihin testeihin liittyen. Kun testit eivät tuota odotettua tulosta, tuloste kertoo missä testissä vika on ja mitä testin todelliset verrattavat arvot olivat.

Esimerkki tulosteesta, kun kaikki testit menivät läpi:

Esimerkki tulosteesta, kun jokin testi tuotti väärän tuloksen. Huomaa, tuloste kertoo, mikä aliohjelma tuotti väärän tuloksen ja minkä tuloksen se tuotti:

HUOM! Aina kun teet muutoksia testeihin tiedostossa ProjektinNimi.cs, muista ajaa komento comtest ProjektinNimi.csproj. Tämä päivittää testit. Jos et aja tätä komentoa, testit eivät päivity. Tämän jälkeen dotnet test

4. ComTestin käyttö Riderin kanssa

Seuraavaksi avaa Rider ja luo uusi Solution Jypelin ConsoleMain-pohjalla.

Tallenna Solution johonkin, mistä löydät sen helposti. Voit käyttää esim edellisessä kohdassa luotua kansiota.

Anna solutionin nimeksi esimerkiksi ComtestEsimerkki, kuten kuvassa. Kuvassa projekti tallennetaan eri paikkaan kuin tässä ohjeessa, älä anna sen hämätä.

Kopioi seuraavaksi edellisen kohdan testikoodi ComtestEsimerkki.cs-tiedostoon ja tallenna. Seuraavaksi teemme ComTestillä saman automaattisen testien kääntämisen, kuin edellisessäkin kohdassa.

Siirry komentorivillä juuri luomasi Solutionin juurikansioon. Jos tallensit Solutionin samaan kansioon, kuin edellisessä kohdassa, on kansion polku ~/kurssit/ohj1/comtest-asennus/ComtestEsimerkki.

cd ~/kurssit/ohj1/comtest-asennus/ComtestEsimerkki

Solutionissa on tällä hetkellä vain yksi projekti, ComtestEsimerkki.

Aja ComTest:

comtest ComtestEsimerkki.csproj

Tämä komento luo testit aivan kuten edellisessäkin kohdassa.

Seuraavaksi lisätään testiprojekti Riderin Solutioniin. Mene takaisin Rideriin ja klikkaa ylävasemmalta SolutionExplorerista Solutionin päältä hiiren oikella napilla. Solution on kohta, jossa on violetti "pyramidi".

Valitse avautuneesta valikosta Add existing project... ja etsi tiedostorakenteesta ComtestEsimerkkiTest-kansio. Klikkaa ComtestEsimerkkiTest.csproj-tiedostosta ja paina Add. Nyt myös testiprojektin tulisi ilmestyä SolutionExploreriin.

Avaa SolutionExplorerista juuri lisätty testiprojekti ja avaa tiedosto ComtestEsimerkkiTest.cs klikkaamalla sitä kahdesti hiiren vasemmalla. Tämä tiedosto sisältää automaattisesti luodut testit. Aja testit painamalla ediorin vasemmassa reunassa olevaa vihreää pientä kolmiota, tai painamalla Control+U ja heti sen perään R näppäimistöltäsi.

Editorin alle tulisi avautua seuraavanlainen ikkuna:

Tässä ikkunassa näet yhteenvedon ajetuista testeistä.

HUOM! Aina kun teet muutoksia testeihin tiedostossa ProjektinNimi.cs, muista ajaa komento comtest ProjektinNimi/ProjektinNimi.csproj. Tämä päivittää testit. Jos et aja tätä komentoa, testit eivät päivity. Muita komentoja ei tarvitse toistaa.

# tool

5. External Tools kautta ajaminen

  1. Tee alla olevan kuvan mukaan Extrenal Tool ComTestia varten
    • laita se ComTest.jarin osoite, johon latasit
Extrenal Tools
Extrenal Tools
  1. Kun haluat ajaa, paina hiiren oikeaa ja Extrenal Tools/comtest
  2. Sitten siirry Unit Test ikkunaan ja aja testit.
  3. Toista 2 jos muutat testejä. Jos et muuta testejä, toista 3.

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.