XML tehtävien työnkulku -- TMC ja XMLStarlet työskentely -- XML harjoitusten toimintaohjeet (pitkä versio) ELEC-C1220 - Automaatio 2
Sisältö 1. Työkaluohjelmat 2. TMC palvelin 3. TMC työnkulku 4. XMLStarlet työtila 5. Tehtävän ratkaiseminen 6. TMC ratkaisun tarkistaminen 7. XMLStarlet esitarkistus 8. Tiedoston editointi Notepad++ 9. Esimerkki: Tehtävän U1E2 vaiheittainen ratkaisu
Työkaluohjelmat TMC-palvelin toimii tehtävien ratkaisujen automaattisena tarkistimena TMC-palvelimeen ollaan yhteydessä web-käyttöliittymän kautta Opiskelijan omalla koneella tarvitaan seuraavat työkaluohjelmat Notepad++ tai jokin vastaava hyvä tekstieditori XMLStarlet tehtäväratkaisujen etukäteistarkistamiseen (ei pakollinen) Komentotulkit (shell) XMLStarlet komentojen ajamiseen; joko cmd.exe tai PowerShell.exe (Windows) Huom. Seuraavissa ohjeissa oletetaan, että tarvittavat työkaluohjelmat on asennettu. Komentotulkit ovat Aallon koneilla valmiiksi asennettuna ja Notepad++:n voi asentaa aallon Windows koneille self-service portalin kautta: (Start/Aalto_IT/Software self-service portal) XMLStarlet: Katso seuraava kalvo
Työkaluohjelmat XMLStarlet asennus ja työtilan luonti XMLStarlet Command Line XML Toolkit on yksinkertainen komentorivityökaluohjelma, joka ei vaadi varsinaista asennusta vaan riittää, että purkaa webistä ladatun zip tiedoston (tee aina ensin virustarkistus) sopivaan kansioon (esim. myxml). XMLStarletin voi ladata osoitteesta (versio 1.6.1): http://xmlstar.sourceforge.net/download.php Kotihakemisto xmlstarlet-1.6.1/ sisältää varsinaisen komentoriviltä (komentotulkista) käynnistettävän ohjelman nimeltä xml.exe. Tee xmlstarlet-1.6.1\ hakemistoon varsinaiseksi työtilaksi alikansiot work\2017\ (Esimerkkikomennot olettavat tämän rakenteen)
TMC - palvelin TMC (Test my code) rekisteröityminen järjestelmään
TMC Test My Code XML harjoituksissa keskeinen osa on TMC-palvelimella, josta tehtäväpohjat ladataan ja jonne harjoitustehtävien ratkaisut lähetetään. TMC tarkastaa ja pisteyttää ratkaisut automaattisesti. TMC:n web-osoite: http://src.aalto.fi/tmc/
TMC - rekisteröityminen TMC:n web-osoite: http://src.aalto.fi/tmc/ Ensimmäisellä kerralla sinun täytyy rekisteröityä TMC-palvelimelle ja luoda tunnus klikkaamalla "Sign up" linkkiä aloitussivun ylälaidassa. Huom: Jos olet Aalto-yliopiston opiskelija, sinun tulee käyttää opiskelijanumeroasi TMCkäyttäjänimenä
TMC - työnkulku Esimerkki: Esitehtävän ratkaiseminen
TMC Sisäänkirjautuminen opiskelijanumerotunnuksella Linkki esitehtävään Round_U0-U0E1_1 löytyy All exercises listasta
TMC - Esitehtävä Esitehtävä Round_U0-U0E1_1 Lataa tehtävän zip-paketti (project template zip)
TMC - Esitehtävä Talleta paketti omaan xml tehtävien työkansioosi Työkansio kannattaa tehdä xmlstarlet-1.6.1 ohjelman kotihakemiston alikansioksi work
TMC XMLStarlet työkansio ZIP paketin talletus: \xmlstarlet-1.6.1\work\2017\zip_downloads
XMLStarlet - työtila work Tehtävän ratkaisun muokkaaminen tekstieditorilla ja tarkistaminen XMLStarlet komentoriviohjelmalla.
XMLStarlet - työkansio work Pura zip-paketti: \zip_downloads\round_u0-u0e1_1
XMLStarlet - työkansio work Kopioi kansio \Round_U0-U0E1_1\Round_U0 XMLStarlet:n workkansioon FROM: TO: \zip_downloads\round_u0-u0e1_1\round_u0 \xmlstarlet-1.6.1\work\2017\round_u0
XMLStarlet - työkansio work XMLStarlet:n kansiorakenne tulisi olla seuraavan kuvan mukainen, jotta command.txt tiedoston XMLStarlet esimerkkikomennot toimisivat sellaisenaan ilman muokkausta. Kuva A: \xmlstarlet-1.6.1\work\2017\round_u0\u0e1_1 Kuva B: \xmlstarlet-1.6.1\work\2017\round_u0\u0e1_1\src Kansio src sisältää esitehtävän muokattavan tiedoston: Esitehtava_U0E1.html
Tehtävän ratkaisu Avaa muokattava tiedosto Esitehtava_U0E1.html tekstieditorilla: Notepad++
Tehtävän ratkaisu Tee tarvittavat lisäykset ja muutokset Esitehtava_U0E1.html tiedostoon ohjeiden mukaisesti. Kuvassa B näkyy virheellinen editointi (tagin </em> ylikirjoitus)
Tehtävän ratkaisun paketointi Paketoi kansio Round_U0 takaisin Round_U0.zip paketiksi TMC:n lataamista varten.
TMC tehtävän tarkistaminen Tehtävän lataaminen ja tarkistaminen TMC:ssä
TMC ratkaisun lataaminen Lataa ratkaisupaketti Round_U0.zip TMC:hen tarkistettavaksi
TMC ratkaisun tarkistaminen Kuva A: Odota hetki tarkistusoperaatiota: Submission received Kuva B: Tarkistin löysi virheitä: Some tests failed (vahingossa kirjoitettiin virheellinen loppumerkki eli tagi em>. P.o.</em>)
TMC Submission välilehdet Submission sivulla on neljä välilehteä (tab), jotka kertovat tarkistuksen tuloksen, annetut pisteet sekä mitä virheitä löytyi: 1. Test Results 2. Stdout 3. Stderr 4. Files Kuva: Files välilehdellä näytetään ratkaisutiedostojen sisältö
TMC Submission välilehdet VÄLILEHDET: Kuva A: Test Results välilehti: tarkistuksen tulos (Status) tarkistusvaiheittain (test case) Kuva B: Stdout välilehti: Kaikkien XMLStarlet komentojen tarkistustulos tiedostoittain
TMC Submission välilehdet VÄLILEHDET: Stderr Kuva A: Stderr välilehti: Ilmoitukset löydetyistä virheistä tarkistusvaiheittain Tämä on tärkein välilehti kun haluat selvittää, mitä virheitä ratkaisusi sisälsi. Huomaa kuitenkin, että kaikista virheistä et välttämättä saa tarkkaa paikannusta. Joskus ilmoitetaan vain ensimmäinen löydetty virhe KUVA A: Tarkistin löysi virheellisesti kirjoitetun lopputagin 123456em>. Op. numero oli kirjoitettu tagin </em> päälle
TMC tehtävän status
TMC virheiden korjaus ja uudelleen lähetys Korjataan löydetyt virheet worktyötilassa Paketoidaan projekti uudelleen Round_U0.zip tiedostoksi Ja ladataan (submit) TMC:hen kuten edellä tehtiin.
TMC Uudelleen tarkistus Jos virheitä ei löydy Test Result välilehdelle tulostuu: All tests successful Got 1 out of 1 point (u0e1p.1)
TMC Submit answer Tehtävä ratkaistu onnistuneesti => 1 tmc-piste (u0e1p1.1)
XMLStarlet tarkistus Tehtävän esitarkistus XMLStarlet komentorivityökalulla
XMLStarlet Osa tehtävistä voidaan ainakin osittain tarkistaa etukäteen käyttäen XMLStarlet komentorivityökalua Kuva A: tarkistettava tiedosto XMLStarlet:n työtilassa Kuva B: commands.txt sisältää esimerkin tarkistuskomennosta
XMLStarlet komentojen ajaminen komentoriviltä Kaksi vaihtoehtoista komentorivityökalua XMLStarlet komentojen ajamista varten: Cmd.exe Windows PowerShell
XMLStarlet komennot - cmd.exe vs. PowerShell Cmd.exe konsolissa komento alkaa >xml w err PowerShell.exe konsolissa komento alkaa >./xml w err
cmd.exe console XMLStarlet komento Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\vpaarnio>cd C:\Users\vpaarnio\SpecialPrograms\xml\xmlstarlet-1.6.1 C:\Users\vpaarnio\SpecialPrograms\xml\xmlstarlet-1.6.1>xml val -w --err./work/ 2017/Round_U0/U0E1_1/src/Esitehtava_U0E1.html./work/2017/Round_U0/U0E1_1/src/Esitehtava_U0E1.html:3.53: Attempt to load netwo rk entity http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd./work/2017/round_u0/u0e1_1/src/esitehtava_u0e1.html:18.31: Opening and ending t ag mismatch: em line 18 and p <p>op.nro: <em> 123456em> </p> ^./work/2017/round_u0/u0e1_1/src/esitehtava_u0e1.html - invalid C:\Users\vpaarnio\SpecialPrograms\xml\xmlstarlet-1.6.1>
Tiedoston editointi Notepad++ Avataan Esitehtava_U0E1.html tiedosto Notepad++ editorissa Korjataan löydetty kirjoitusvirhe.
Esimerkki: Vaiheittainen ratkaisu Esimerkki tehtävän vaiheittaisesta ratkaisemisesta
Tehtävän U1E2 vaiheittainen ratkaisu Osa tehtävistä voidaan ohjeiden mukaan ratkaista ja tarkistaa vaiheittain. Esimerkiksi 1. kierroksen tehtävä U1E2 suositellaan ratkaistavaksi neljässä vaiheessa. Jokaisen vaiheen ratkaisun jälkeen kannattaa tehtävä lähettää TMC:hen tarkistettavaksi.
Esimerkki: Stdout: Vaiheiden 1-3 testcase:t
Tehtävän U1E2 neljä vaihetta Vaiheittain ratkaiseminen auttaa keskittymään ainoastaan ko. vaiheeseen liittyviin virheilmoituksiin, mikä helpottaa ratkaisun löytymistä. Stderr välilehden virheilmoituksista kannattaa siis käydä läpi test case järjestyksessä.
Tehtävän U1E2 neljä vaihetta Tehtävä kannattaa lähettää (submit) TMC:hen joka vaiheen lopuksi. Jos vaihe on ratkaistu oikein kertyneiden pisteiden määrä kasvaa. Pisteiden määrä ei voi laskea
Tehtävän U1E2 neljä vaihetta Tämän tehtävän kaikkien vaiheiden onnistuneesta ratkaisusta kertyy yhteensä 60 tmc-pistettä
END