2012-08-26 4 views
9

VS2010으로 업그레이드하려고하는 VS2010 솔루션이 있습니다.VS2010과 VS2012에서 DeploymentItem이 다르게 작동합니다.

VS2012의 MSTest 유닛 테스트에 문제가 있습니다. 모든 테스트에는 테스트 클래스의 DeploymentItem 특성이 포함됩니다.

[TestClass] 
[DeploymentItem(@"SubDir\SubDir2\models", "models")] 
public class UnitTests 
{ ... } 

2010 년에는 SolutionDirectory\SubDir\SubDir2\models 디렉토리의 종속 파일을 올바르게 복사하고 있습니다. 2012 년

, 시험은 내가 이전 동작을 복원 할 수있는 방법을 찾고 있어요 SolutionDirectory\UnitTests\bin\debug\SubDir\SubDir2\models

를 배포 디렉토리에서 복사하려고합니다.

답변

1

vs2012 및 .net 4.5를 설치 한 후에는 파일을 옮기는 위치와 파일의 이동 위치와 동기화되지 않은 것처럼 보입니다.

저렴한 해결 방법 : 파일이

  • 변경 해당 위치
  • 을하기 전에 보는 테스트 코드로 이동되는 위치

  • 참조있는 그대로

    1. 는 deploymentitemattribute 경로를 남겨 이 업그레이드 mstest는 bin 디렉토리의 하위 디렉토리로 옮겨 졌더라도 배포 항목을 찾을만큼 똑똑했습니다. 더 이상 그렇지 않은 것 같습니다.

      은 다음과 같이 표시 될 수 있습니다 귀하의 단위 테스트 코드의 라인을 업그레이드 그래서 전에 ...

      FileInfo fi = new FileInfo("temp.txt"); 
      

      은 다음과 같이 표시 될 수 있습니다 귀하의 단위 테스트 코드의 라인을 업그레이드 한 후 ...

      FileInfo fi = new FileInfo("\SubDir\SubDir2\models\temp.txt"); 
      
  • +1

    나는 당신이 말하는 것을보고 있습니다. 불행하게도, 복원하려는 테스트는 "유닛 테스트"보다 "통합"되었고 이진 경로는 다른 곳에서는 하드 코딩되었습니다. 나의 "값싼 해결 방법"은 프로젝트의 파일에 대한 링크를 만들고 빌드에서 복사하도록 설정 한 다음 빌드 디렉토리에서 복사 할 "DeploymentItem"속성을 수정했습니다. 작동하지만 큰 문제는 해결하지 못합니다. –

    4

    솔루션에서 테스트 설정 파일을 만드는 경우 기본적으로 테스트 설정에서 배포를 사용하도록 설정하고 테스트 탐색기 (테스트 -> 테스트 설정 -> 테스트 설정 파일 선택)에서 선택합니다 코드를 변경하지 않고 작동해야합니다.

    +2

    나를 위해 일했습니다 :) VS 2010에 VS 2010 프로젝트, 내가 이것을 할 때까지 내 testdata를 복사 wasnt. – Cadab

    관련 문제