ComTest ja Visual Studio

ComTestin avulla voidaan Visual Studiossa kokeilla funktioiden toimivuutta sekä löytää mahdollisia virheitä toiminnassa.

In English

# asennusurakka

Asennusurakka

# asennusedistyy23

1. Asentaminen

1.1 Java

Tarkista että Java on asennettuna. Helpoiten tämän näkee kun menee komentoriville (kirjoita Windows- hakuun cmd) ja kirjoittaa

java -version

tai

java --version

Mikäli koneessasi on Java, antaa komentorivi Java-versiostasi tietoa.

Jos koneessasi ei ole Javaa (vähintään versio 8), lataa ja asenna uusin versio täältä.

Itselläni toimi vain “java -version”, ilman toista viivaa.

VL: Mikä käyttis, minkä version se sulle antaa? Varmaan joku vanha Java.

12 Jan 21 (edited 12 Jan 21)

Mulla sama homma. Windows 10, Java versio “1.8.0_271”

12 Jan 21

Just asennettuna mullakin java versio näkyy yhdellä viivalla haettuna

VL: voi se näkyä yhdelläkin, mutta tuo rikkoo pahasti tapoja. ELi jos option nimi on enemmän kuin yksi kirjain, pitäisi sen eteen laittaa 2 viivaa. Java 8 on jo vanhaa kamaa, mutta saattaa toimia. Uusissa Javoissa tapoja on korjattu.

12 Jan 21 (edited 12 Jan 21)
# plugin

1.2 Liitännäinen

Tässä vaiheessa tulee Visual Studio olla asennettuna

1. Tallenna koneellesi ja aja liitännäisen

  • asennusohjelma VS2022.

    HUOM! Tarkista, että selaimesi ei muuta asennustiedostoa .zip-päätteiseksi.

  • Windows saattaa antaa suojausvaroituksia, mutta voit sallia tiedoston suorittamisen

  • Seuraa asennusohjelman ohjeita ja käynnistä sitten Visual Studio.

  • Mikäli asennus onnistui, C# -projektin ollessa auki, Visual Studion Tools(työkalut) -valikon alla löytyy nyt ComTest -valikko

  • Eikö toimi?

    • Jos ComTest -valikkoa ei näy, tarkista löytyykö ComTestia Extensions/Manage Extensions -valikosta. Valitse vasemmanpuoleisesta listasta Installed. Jos löytyy, aktivoi(enable) se ja käynnistä Visual Studio uudelleen.

    • Mikäli sinulla on vanha versio ComTestista asennettuna, poista(uninstall) se äskeisessä kohdassa mainitusta Extensions/Manage Extensions/All -valikosta.

2. Avaa ComTestin asetusdialogi Tools/ComTest/Options -valikosta:

  • Avautuu seuraavanlainen ikkuna: Image

3. ComTestin polun (Path to ComTest.jar executable) alle kirjoita polku johon haluat ComTest.jarin latautuvan. Oletuspolku on todennäköisesti hyvä.

  • Mikäli Javan polku ei ole automaattisesti täytetty, etsi ja kirjoita siihen java.exe -tiedoston koko polku

Kommentoin tästä pois ohjeen lainausmerkkien lisäämisestä polkuihin, joissa on välilyöntejä. Tällä hetkellä VS ei löydä javaa tai ComTest-tiedostoa, jos polun ympäröi lainausmerkeillä. - Juho K

24 Sep 20

4. Seuraavaksi valitse Tools/ComTest/ valikosta mikä tahansa (muu kuin options) valinta, jolloin ladataan tarvittavat tiedostot.

Snippetin lisääminen manuaalisesti

Kokeile snippetin toimivuus:

  • Kirjoita comt ohjelmassasi XML -kommenttikentän perään:

      /// <summary>
      /// Multiplies to numbers
      /// </summary>
      /// <param name="a">first number</param>
      /// <param name="b">second number</param>
      /// <returns>a*b</returns>
      comt|
      public static double Multiply(double a, double b)
      {
       // ...
      }
  • Ja paina tab -painiketta kahdesti. Koodin pitäisi muuttua seuraavanlaiseksi:

      /// <summary>
      /// Multiplies to numbers
      /// </summary>
      /// <param name="a">first number</param>
      /// <param name="b">second number</param>
      /// <returns>a*b</returns>
      /// <example>
      /// <pre name="test">
      /// |
      /// </pre>
      /// </example>
      public static double Multiply(double a, double b)
      {
       // ...
      }

Ongelmia?

  • Varmista, että paina tab -painiketta kun osoitin on heti comt -tekstin perässä, ei välejä tai muita merkkejä välissä
  • Varmista ettei comt -tekstin edessä ole ///
# comtestpaivitys

1.2.1 ComTest liitännäisen (plugin) päivitys

Uusi versio tullut 9.10.2022

  1. lataa uusi liitännäisen versio
  2. sammuta Visual Studio
  3. tuplaklikkaa ladattua .vsix-tiedostoa
  4. anna asennusoikeus
  5. asentaa
    • Jos valittaa että ei voi asentaa kun on entinen olemassa, niin poista vanha:
      • avaa VS2022
      • menusta Extantions/Manage extensions
      • avaa Installed
      • etsi ComTest
      • Uninstall
      • jatka kohdasta 2

1.3 Sarkaimilla (tab) sisennys pois päältä

Vaihda Visual Studion asetuksista niin, että käytetään sisennyksiin vain välilyöntejä, ei sarkainmerkkejä:

  • Tools/Options
  • etsi sanaa tab
  • valitse C#
  • pallukka kohtaan Insert spaces

jotenkin nyt en löydä ko. kohtaa Visual Studiosta, siellä on tabs and windows, mutta siellä ei ole kohtaa C#

24 Aug 20 (edited 24 Aug 20)

2. Käyttö

2.1 Testiohjelma

Ensimmäistä testiä varten luo uusi C# ConsoleMain -projekti. Anna projektille nimeksi annat vaikkapa Laskuja ja sitten muutat Laskuja.cs tiedostossa Laskuja -luokan sisällöksi:

Jypelin Console Main projektin pohjassa ei ilmaannu program.cs fileä. Solutionista ei löydy muuta kuin Laskuja.cs file. Korjasin, tiedoston ja luokan nimi on sama kuin projektin nimi ConsoleMain-projektissa. Näillä nimillä ei kuitenkaan ole tässä yhteydessä merkitystä. -MR

16 Feb 21 (edited 16 Feb 21)
# laskuja

Aja testit alla olevilla ohjeilla yhden kerran ja näe punaista. Sitten korjaa rivi return 0 muotoon

return a + b;

ja katso että näet vihreätä.

Visual Studiossa ComTestin voit ajaa klikkaamalla solution explorerissa omaa solutioniasi hiiren oikealla panikkeella ja aukeavasta menusta painamalla ComTest Solution tai näppäinyhdistelmällä Ctrl + Shift + Alt + Q, tai ikkunan yläreunasta Tools\ComTest\Jos solutionissa on monta projektia, voi ComTest Project olla parempi vaihtoehto.

Kun ensimmäisen kerran ajat ComTestin, lataa se se tarvittavan ComTest.jar tiedoston, sekä koodilohkojen tekemistä helpottavan snippet-tiedoston. Lisäksi Visual Studio lataa muutaman testien ajamiseen tarvittavan paketin. Tässä saattaa kestää hetki. Näet etenemisen ikkunan alareunasta.

Kun saat toimivuuden kokeiltua, käynnistä Visual Studio vielä yhden kerran uudelleen, jotta ladattu snippet aktivoituu. Sen käytöstä alempana lisää.

Mikäli testi epäonnistuu ja tulee Build Error, sekä Error List näyttää seuraavanlaista: Image Tarkista että koodissasi lukee

    public class Program
    {
    //...
    }

eikä vain

    class Program
    {
    //...
    }

Jos testien ajaminen onnistuu ja

  • Kaikki testit menevät läpi, näyttää Test Explorer vihreää väriä

  • Yksikin testi menee väärin, näyttää Test Explorer punaista väriä

Image Jos testien ajo ei onnistu, ei Test Exploreria näy tai se näyttää sinistä väriä

2.2 ComTestin syntaksi

ComTestissa testit kirjoitetaan itse aliohjelman kommenttiosion jälkeen juuri ennen itse aliohjelmaa.

Testiosion aloittaa aina

    ///<example>
    ///<pre name="test">        

jonka perään kirjoitetaan itse testit, esimerkiksi

    /// LukujenTulo(3,4) === 12;
    /// LukujenTulo(0,6) === 0;        

Testiosion päättää

    /// </pre>
    /// </example>

josta seuraavalla rivillä alkaa aliohjelman koodi.

Testinä toimii ensin kirjoitettava testattavan aliohjelman kutsu (esim. LukujenTulo(3,4)), jonka perään tuleva === symboloi "pitäisi tulla". === perään kirjoitetaan mitä aliohjelman kutsuumme kirjoitetuilla parametreillä tulisi palauttaa. Rivi päätetään puolipisteellä.

Mikäli aliohjelma todellisuudessa palauttaa jonkin muun vastauksen, näyttää testi punaista.

Jos haluat testata desimaalilukuja, käytä === -ilmauksen sijaan ~~~ -merkkejä.

Koska koodilohkon oikeanlaisen syntaksin muistaminen on hankalaa, lataa ComTest plugin sinulle automaattisesti sitä ladattavan snippet tiedoston.

Mene haluamasi aliohjelman yläpuolelle ja kirjoita comt, jonka jälkeen paina kaksi kertaa tab-näppäintä (Caps lockin yläpuolella).
Eli esimerkiksi:

/// <summary>
/// Tässä on dokumentaatio...
/// </summary>
comt
public static int Summa(int a, int b)
{
    return 0;
}

tilalle muodostuu

/// <summary>
/// Tässä on dokumentaatio...
/// </summary>
/// <example>
/// <pre name="test">
///  
/// </pre>
/// </example>
public static int Summa(int a, int b)
{
    return 0;
}

Huomaa että comt sanan edessä ei saa olla ///, tai muuten pikakomento ei toimi.

# ongelmia

3. Ongelmia

3.1 Jos .vsix tiedostojen ajaminen ei onnistu

Jos

ComTestCSPlugin.vsix

ajo kaatuu, niin voi yrittää seuraavaa:

  • luo hakemisto c:\MyTemp\temp
  • kirjoita komentoriviltä Control
  • ota System/Advanced System Settings/Advanced/Environment Variables
  • vaihda muuttujien TEMP ja TMP arvoksi tuo c:\MyTemp\temp

Sitten kokeile uudelleen klikata vsix-tiedostoja.

3.2 Testejä ajaessa virheilmoitus: Illegal characters in path

Milloin ilmenee?

  • Olet muuttanut projektisi nimeä (Rename) sen jälkeen, kun olet käyttänyt ComTestiä projektin vanhan nimen aikana. Ongelma johtuu ilmeisesti siitä, että Visual Studio / ComTest ei päivitä testien kansioiden nimiä projektin uudelleennimeämisen jälkeen.

Yksi ehdotettu ratkaisu

  • Uusi projekti haluamallasi nimellä.
  • Kopioi ohjelmakoodisi tähän uuteen projektiin oikeisiin tiedostoihin.
  • Aja ComTest Solution -> ComTest luo uudet testikansiot oikeilla nimillä ja testien pitäisi löytyä.
  • (Jos sama ongelma ilmenee ja olet muuttanut Solutionin nimeä, niin tee kokonaan uusi Solution projekteineen)

Tätä ei pitäisi enää tapahtua. Ilmoita jos saat tämän virheen. -MR

04 Jun 21

3.3 Testien tulokseksi ei tule vihreää tai punaista, vaan sinisiä symboleita

Milloin ilmenee?

  • Kun konsoliprojektisi pohjamalli oli .Net Frameworkin konsoliprojekti. Oikeita vaihtoehtoja olisivat Jypelin ConsoleMain, tai .Net Core-konsoliprojekti.

Mistä tiedän onko tämä .Net Framework-projekti?

  • Solution Explorer-ikkunassa on nähtävissä Properties ja References. Näitä ei pitäisi näkyä, vaan niiden tilalla olisi Dependencies.

Korjaamiseen kaksi vaihtoehtoa:

  1. Vaihda projektin Run Configurationiksi AnyCpu:n sijasta x86, tai...
  2. Tee uusi projekti Jypelin ConsoleMain -mallilla, johon kopioit koodisi. Uusiin projekteihin kannattaa ehdottomasti valita Jypelin ConsoleMain, jotta kurssin työkalujen yhteensopivuus on maksimoitu.

Tätä saattaa joskus tapahtua, mutta tässä ehdotettu syy/korjaus ei nykyisin ole aina täysin relevantti. Jos tapahtuu, muodosta testit Comtestin “Generate Tests” valinnasta, ja aja ne Test Explorerin ajonappulasta. -MR

04 Jun 21

3.4 ComTest ei toimi jos on projekteja on unload-tilassa

  • jos joku projekti on unload-tilassa ei toistaiseksi voi silloin ko solutionissa ajaa ComTestejä vaan saa mystisiä virheilmoituksia
  • korjaus: poista unload projekti tai avaa se uudelleen

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