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:
<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í
- Nastavení cesty v suite nestačí, musím nastavit !path v SetUp stránce testu.
- 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.