las siguientes obras en VS2012 para proyectos de prueba incluidos en múltiples soluciones sin necesidad de utilizar un archivo testsettings:
1) organizar los archivos y carpetas que desea implementar en una carpeta en el directorio de proyecto de prueba.
2) En las propiedades del proyecto, cree un paso posterior a la acumulación
xcopy /Y /S /i "$(ProjectDir)<Project_Folder_Name>\*" "$(TargetDir)<Deployment_Folder_Name>"
$(ProjectDir)
y $(TargetDir)
son macros que serán interpretados por VS y debe ser incluido como tal.
<Project_Folder_Name>
es el nombre de la carpeta creada en el paso 1.
<Deployment_Folder_Name>
es el nombre de la carpeta en la que se desplegarán los archivos de prueba y deben ser nombrados de manera que será único cuando varios proyectos de prueba son desplegado en el mismo directorio, por ejemplo <Project_Name>_TestInputs
.
Los archivos de prueba en ubicaciones compartidas también deben copiarse en la carpeta de distribución del directorio de destino para limitar las interacciones de prueba. Proporcione la ruta de origen relativa a la macro $(ProjectDir)
. Por ejemplo "$(ProjectDir)..\..\Common Files\C1219TDL-2008.xml"
.
3) Agregue una propiedad [DeploymentItem(source, destination)]
a cada método de prueba que utiliza un archivo de implementación (práctica recomendada) o a la clase de prueba (práctica más fácil para el perezoso o apresurado, y la forma más fácil de actualizar un proyecto rutas o un archivo de ajustes de prueba).
En un método de ensayo, source
es la ruta de acceso al archivo o directorio usado en el método de ensayo con relación al directorio de destino como creado por el xcopy
y destination
es la ruta al directorio en el que se creará en relación con el directorio de despliegue. Para que las pruebas se ejecuten de forma coherente en el directorio de destino o en un directorio de implementación. La ruta de destino debe ser la misma que la ruta de origen sin una referencia de archivo. Ejemplo: [DeploymentItem("Example_TestInputs\C1219TDL-2008.xml","Example_TestInputs")]
. El DeploymentItem
se debe incluir en cada método que use ese archivo o directorio.
En una clase, source
y destination
son ambos el nombre de la carpeta creada en el directorio de destino por el xcopy
; esto copiará la carpeta completa al directorio de implementación cuando se ejecute cualquier prueba en la clase. Ejemplo: [DeploymentItem("Example_TestInputs","Example_TestInputs")]
4) En los métodos de prueba, ahora puede acceder a archivos y directorios con la confianza de que estarán en el directorio de trabajo, independientemente de dónde Visual Studio haya decidido colocarlo ese día, p. File.Exists(".\Example_TestInputs\C1219TDL-2008.xml")
.
En VS2010 esto es: Probar/Editar configuración de prueba/local, luego en la lista, seleccione "Implementación", marque la casilla "Habilitar ..." y agregue el archivo (s). – Marcel
Es posible que tenga que cerrar la solución (o incluso Visual Studio) y volver a abrir antes de que este cambio entre en vigor correctamente – RobV
RobV, usted hizo mi día. ¡GRACIAS! –