2009-03-17 16 views
5

Estoy utilizando FitNesse como un marco de prueba funcional. Me encuentro en problemas cuando FitNesse ejecuta código que necesita configuración.Archivos de configuración de FitNesse

Si necesito obtener una cadena de conexión del archivo de configuración, puedo hacer que funcione agregándolo a FitServer.exe.config. Sin embargo, no me gusta esa solución. Me gustaría que FitNesse cargue mi propio archivo de configuración, a saber, TheNameOfMyApp.dll.config.

¿Esto es posible?

Respuesta

5

Claro, fácil de hacer. Supongo que estás usando el corredor de prueba dotnet o dotnet2. Estoy usando el runner de prueba dotnet2, y así es como lo configuré:

Primero, cuando defines tu COMMAND_PATTERN, incluye -c suite.config. Por ejemplo, tengo el siguiente en la raíz:

!define COMMAND_PATTERN {%m -c suite.config %p} 
!define TEST_RUNNER {..\..\bin\Debug\FitServer.exe} 

suite.config va en el mismo directorio que fitnesse.jar:

<suiteConfig> 
    <fit.Settings> 
     <appConfigFile>..\..\MyProjectFolder\fitnesse\MyProjectName.config</appConfigFile> 
    </fit.Settings> 
    <fit.Assemblies> 
    </fit.Assemblies> 
    <fit.FileExclusions> 
     <add>^\.svn$</add> 
    </fit.FileExclusions> 
    <fit.Namespaces> 
    </fit.Namespaces> 
    <fit.CellHandlers> 
    </fit.CellHandlers> 
    <fitlibrary.CellHandlers> 
    </fitlibrary.CellHandlers> 
</suiteConfig> 

MyProjectName.config se ve así:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings> 
     <add key="keyname" value="something" /> 
    </appSettings> 

</configuration> 

Puede hacer las cosas más fáciles si usa una ruta absoluta para appConfigFile. Comencé con una ruta absoluta, conseguí que todo funcionara, luego cambié a una ruta relativa por prueba y error.

Tenga en cuenta que estoy ejecutando mi corrector de prueba desde una ubicación no estándar, lo que afectará a la ruta relativa en suite.config. La ruta es relativa a su ubicación TEST_RUNNER, NO a suite.config o fitnesse.jar.

+1

Aunque esto funciona, también puede usar la opción -a (en lugar de la opción -c) como se indica en http://stackoverflow.com/questions/1849172/fitnesse-app-config - simplemente un poco más simple –

0

sí, es posible, pero una gran cantidad de trabajo. necesita definir un proyecto de prueba donde tiene sus pruebas y un proyecto de "envoltura" donde tiene la funcionalidad de proporcionar las pruebas con datos y configuración.

+0

¿Tiene un enlace a una solución de ejemplo o tutorial? – grootjans

Cuestiones relacionadas