Thursday, December 18, 2014

Fitnesse a testy v DB Oracle

Fitnesse

Framework pro systémové a akceptační testy. Fitnesse vhodným způsobem spojuje možnosti business popisu testů s jejich implementací a provedením. Web Wiki s mechanismy, které umožní na wiki stránky Fitnesse umístit deklarativní předpisy pro povedení testů. Tyto předpisy pak Fitnesse testovací engine (jsou v současné době dva: starší F.I.T. a mladší S.L.I.M.) provádí a výsledky testů jsou přímo zobrazené na wiki stránkách s těmito předpisy (více viz http://www.fitnesse.org).


Jakým způsobem připravit testy, které budou testovat prostřednictvím SQL příkazů v databázi DBMS Oracle?

Zaměřil jsem se na použití novější koncepce provádění testů - S.L.I.M. (Simple List Invocation Method)

SLIM je modernější způsob pro vytvoření předpisů a následné provádění testů v systému FitNesse (http://www.fitnesse.org/FitNesse.UserGuide.WritingAcceptanceTests.SliM)

Postup pro nastavení 

Nastavení a definice na úrovni testovací suite

Do stránky suite je potřeba napsat definici, že budeme používat SLIM, a vhodné je zde uvést cesty ke knihovnám, které budeme přidávat:

!define TEST_SYSTEM {slim}


Příprava knihoven do lib podadresáře

Pro napojení do Oracle databáze budeme potřebovat následující jar soubory:
ojdbc5.jar
dbslim-0.0.1.jar
mchange-commons-java-0.2.8.jar
c3p0-0.9.5-pre10.jar
c3p0-oracle-thin-extras-0.9.5-pre10.jar
log4j-over-slf4j-1.7.7.jar
slf4j-api-1.7.7.jar

Soubory umístěte do podadresáře lib .

Do SetUp stránky testu místěte odkazy na knihovny:

!path lib\*.jar


Nastavení a definice

Stránka SetUp:

!contents


!path lib/*.jar





|Import            |
|fitnesse.slim.test|
|fitnesse.fixtures |
|slim              |


!define COLLAPSE_SETUP {true}
!define COLLAPSE_TEARDOWN {true}

!|SetUp|


Stránka testu:


!include SetUp

<test page>


!|Script|Db Slim Setup|!-oracle.jdbc.driver.OracleDriver-!|jdbc:oracle:thin:@dbhost:1521:database1|user|password|

!define currentModule {mymodule}
!define currentVersion {4.0.2}
!define releasedAt {2014-09-18 12:41:26}

!define dbQuerySelectDbVersion (
select * from T_DB_VERSION
)

!|Script  |Db Slim Select Query        |${dbQuerySelectDbVersion}                    |
|check    |data;                       |C_MODULE     |0            |${currentModule} |
|check    |data;                       |C_VERSION    |0            |${currentVersion}|
|check    |data;                       |C_RELEASED_AT|0            |${releasedAt}    |
|check    |data By Column Index        |2            |and Row Index|0 |${releasedAt} |
|$version=|dataByColumnNameAndRowIndex;|1            |0                              |
|check    |data;                       |C_VERSION    |0            |4.0.2            |


Problémy k řešení

  1. Nastavení cesty v suite nestačí, musím nastavit !path v SetUp stránce testu.
  2. Pokud není správně nastavená cesta k dbslim-0.0.1.jar dostanu chybu:  Db Slim Setup Could not invoke constructor for DbSlimSetup[4] , ale nikde jsem nenalezl vyjímku s stacktrace, která by blíže určovala příčinu. Očekával bych někde ClassNotFound nebo něco podobného. Zkoušel jsem i verbose logování (parametr -v pro rozšířené logování). Hledal jsem v otevřené konzoli fitnesse, v adresáři FitNesseRoot/ErrorLogs a dále nevím, kam se ještě podívat. Když se podaří nastavit sprváně cesta k dbslim-0.0.1.jar , tak u se na stránce testu objeví alespoň Db Slim Setupjava.lang.NoClassDefFoundError: com.mchange.v2.c3p0.ComboPooledDataSource.





No comments:

Post a Comment