2017-02-02 2 views
2

우리는 SpecFlow를 사용하여 BDD 프랙티스와 Pickles를 적용하여 문서를 생성합니다.Pickles가 테스트 결과를 가져올 수 있도록 MSBuild 인수로 인해 잘못된 경로 오류가 발생합니다.

우리의 빌드는 다음과 같습니다

  1. 빌드 (VSTest 사용)
  2. 배포
  3. 테스트
  4. 이 문서 (절임을 사용)를 생성하는 생성 문서의 단계는 다음에 오는

을 테스트 단계이므로 테스트 결과를 피클에 포함 할 수 있습니다. 나는 피클을 빌드 단계로 사용하기 때문에 각 피클 버전을 관리하고 각 솔루션에서 추가 옵션을 관리 할 수 ​​있습니다.

TFS2017의 비주얼 스튜디오 빌드 단계는 다음과 같습니다 : 나는 위의 작업을 수행 할 때

/t:DocumentationGeneration 
/p:Pickles_Generate=True 
/p:Pickles_DocumentationFormat=dhtml 
/p:Pickles_ResultsFile="$(build.sourcesdirectory)/TestResults/*.trx" 
/p:Pickles_OutputDirectory="$(build.artifactstagingdirectory)/PickledDocumentation" 
    [some more generic parameters that are not relevant here] 

, 내가 빌드하는 동안 "경로에 잘못된 문자"오류를를 얻을.
USERNAME_SERVERNAME1234 2017-02-02 09_09_09.trx

내가보고 시도 : 내가 /p:Pickles_ResultsFile="$(build.sourcesdirectory)/TestResults/testresults.trx"로 대체 문제가 testresults가 아닌 예측 형식으로되어 있기 때문에 단지 testresults 찾을 수없는, 전혀 존재하지 않는 경우는 *이 오류를 일으키는 원인이 될 것으로 보인다 .trx 파일에 대한 일반 이름을 생성 할 수 있지만 VSTest는 사용자 지정 이름을 지원하지 않습니다. 다른 사람이이 문제를 겪었습니까? 해결할 수있는 좋은 접근 방법이 있습니까?

+1

정확한 파일명을 알아내는 것 외에 다른 옵션은 없을 것입니다. 그건 너무 어렵지 않습니다. 내장 된 msbuild 기능입니다. 원리는 사용자 지정 'PicklesResultsDir'을 프로젝트에 전달하고 프로젝트를 실행하면''. 당신은 당신의 솔루션/프로젝트 레이아웃이 무엇인지 말하지 않기 때문에이 논리를 정확히 어디에 넣을 지 말할 수는 없습니다. – stijn

답변

2

Pickles는 테스트 결과 파일의 정확한 이름 만 지원합니다. 와일드 카드를 허용하는 GitHub 프로젝트 사이트에는 issue이 있습니다. Pickles의 관리자로서, 나는 그 문제를 해결하는 요청을 검토하게되어 기쁩니다.

+0

안녕하세요 @ dirk-rombauts, 훌륭한 제품을 주셔서 감사합니다. 나는 그것으로 들여다 볼 것이고 어쩌면 나는 고칠 수도있다. (필자는 어쨌든 실제 테스트 케이스를 가지고있다.). 지금은 다른 빌드 단계로 .trx 파일의 이름을 변경하여 해결했습니다. – AutomatedChaos

+0

나는 그것이 당신을 위해 일할 수있는 길을 찾은 것을 기쁘게 생각합니다! 내가 당신을 도울 수있는 다른 절임 관련 일들이 있는지 물어보십시오. –

+0

@ Cece-MSFT 완료. 적절할 때 업데이트됩니다 (예 : 와일드 카드 지원). – AutomatedChaos

0

요청시 : 이것은 어떻게 해결 했는가? 그것은 나의 특별한 상황에서 그 작품을 둘러싼 더 많은 일이지만 밑바닥에서 나는 그것이 곧 수정 될 것을 희망한다고 설명한다.

  1. 명령 줄이 올바른 도구의 사용과 같은 테스트 빌드 단계
  2. 후 단계를 구축 만들기 인수 "$(build.sourcesdirectory)\TestResults\*.trx" TestResults.trx

지금 당신이 피클 문서를 생성하기 위해 비주얼 스튜디오 빌드 단계를 사용할 수 있습니다 사용으로 Rename

  • (프로젝트에서 NuGet 패키지로 피클을 가져와야 함)

    1. As buildarguments가 추가 매개 변수 설정으로 해결 $(Build.SourcesDirectory)/yourproject.csproj
    2. 을 설정 : 나는, 이름 바꾸기가 작품 주위에 조금이다 말했듯이

      /t:DocumentationGeneration 
      /p:Pickles_Generate=True 
      /p:Pickles_DocumentationFormat=dhtml 
      /p:Pickles_ResultsFile="$(build.sourcesdirectory)/TestResults/TestResults.trx" 
      /p:Pickles_ResultsFormat="vstest" 
      /p:Pickles_OutputDirectory="yourdestinationpath" 
      

    을, 그래서 나는 와일드 카드 지원을 활성화하기 위해 피클 자체의 코드를 확장하고, 이제 a pull request in the pickles repo입니다. 잘하면 다음 릴리스에서 구현되므로 모든 방법이 가능합니다. :)

  • 관련 문제