Usando MSTest, ¿cuál es la raíz de ruta relativa del DeploymentItemAttribute.¿Cuál es la raíz de ruta relativa de DeploymentItemAttribute?
Respuesta
por la página MSDN ...
Las rutas relativas son relativas a la configuración RelativePathRoot encontrado en el archivo .testrunconfig.
Esa configuración es, de forma predeterminada, el directorio de soluciones . Por lo tanto, si usted tiene esta estructura del proyecto
SecretProject\
ComponentA\
ComponentA.Test\
Resources\
required.xml
ComponentA.Test.csproj
Tests.cs
SecretProject.sln
Y desea implementar required.xml, vas a crear un DeploymentItemAttribute como esto
[TestClass]
public class Tests
{
[TestMethod]
[DeploymentItem("ComponentA.Test\Resources\required.xml")]
public void Test()
{
}
}
Parece el archivo de propiedades necesitan establecerse en 'Contenido' y 'Copiar siempre' o 'Copiar si es nuevo'. Hay ejemplos avanzados en this MSDN page.
Suponer que el valor predeterminado de RelativePathRoot es el directorio donde reside su solución no era correcto en mi caso, ni RelativePathRoot se definió en mi archivo .testrunconfig. Encontré el valor predeterminado de RelativePathRoot como el directorio/bin/debug para la solución.
Caminando hacia atrás desde ese punto, luego caminar hasta mi archivo que estaba intentando implementar para la prueba de la unidad funcionó bien.
Así que voy a agregar mi experiencia.
Así que si está utilizando el archivo .testrunconfig, eso prevalecerá (anulará) lo que estoy diciendo a continuación.
Pensé que había algunas opciones.
relativa a la .csproj actual
relativa a la .sln
En relación con el archivo .cs actuales
Finalmente llegué a mi sistema de generación de trabajo mediante el uso de la "relativo al actual archivo .cs "enfoque.
En mi ejemplo, necesitaba una Xsd de un proyecto diferente copiado para mi UnitTest. Pero el tipo de archivo no importa.
Ejemplo:
c: \ myfolder \ MyXsdProject \ XSDs \ MyCoolXsd.xsd
c: \ myfolder \ MyCsharpUnitTestProject \ MySubFolder1 \ MySubFolder2 \ MyUnitTestClass.cs
namespace MyCsharpUnitTestProject.MySubFolder1.MySubFolder2
{
[TestClass]
[DeploymentItem(@"..\..\..\MyXsdProject\XSDs\MyCoolXsd.xsd")]
public class MyUnitTestClass
{
}
}
- 1. Ruta relativa de ASP.NET
- 2. Obteniendo la raíz relativa en Global.Asax
- 3. Ruta relativa de App.config
- 4. Ruta absoluta y ruta relativa
- 5. ¿Cuál es la posición: relativa útil para?
- 6. Ruta de absoluta a relativa (Eclipse, JSP)
- 7. Ruta de la raíz de la aplicación Grails
- 8. problema con la ruta de archivo relativa
- 9. Ruta relativa en la página maestra de la etiqueta img
- 10. Ruta relativa al directorio de su proyecto
- 11. Obtención de una ruta virtual relativa desde la ruta física
- 12. Obtener imagen de la ruta relativa
- 13. URL absoluta de la ruta relativa
- 14. Combinar relativeUri relativa con ruta relativa
- 15. Ruta relativa de una dirección de operador raíz ("~") en el código detrás de
- 16. ruta absoluta relativa perl
- 17. Ruta relativa utilizando Uri
- 18. ruta relativa usando C#
- 19. Detecta si la ruta es absoluta o relativa
- 20. MENOS fondo de CSS con la ruta relativa
- 21. Ruta relativa de resolución de Java
- 22. Rails 3 ¿Problemas con la ruta raíz?
- 23. Makefile: amplíe la ruta PREFIX relativa
- 24. MSDeploy runCommand utilizando la ruta relativa
- 25. En servlet (aplicación web) ¿cómo sé la ruta relativa?
- 26. Ruta relativa a la ruta absoluta en C#?
- 27. Ruta relativa a la ruta absoluta en Elisp
- 28. Ruta de referencia relativa de estudio visual
- 29. Usando Response.Redirect() a una ruta relativa
- 30. Ruta relativa a la ruta absoluta en VB.NET
"Parece que las propiedades de los archivos tienen que ser puesto a 'contenido' y 'Copiar siempre' o 'Copiar si es más nuevo'." Te sorprendería lo difícil que fue encontrar esto ... – SouthShoreAK
@SouthShoreAK - ¿Dónde se encontró? –
@ScottLangham Está en las propiedades de archivo del elemento de implementación. En el 'Explorador de soluciones' debe resaltar el archivo (en este caso 'required.xml'), haga clic con el botón derecho y seleccione propiedades. Deberías verlo allí. – dpimente