2016-08-08 6 views
0

CodedUI 테스트에서 CSV 파일을 DataSource로 사용하고 있습니다. 이 파일은 그래서 다음과 같습니다CodedUI TestCaseFilter

환경, URL
라이브 , www.example.com
단계, stage.example.com
테스트, test.example.com

내가 싶습니다

vstest.console.exe 명령 줄을 실행할 때 환경 중 하나에서만 선택적으로 테스트를 실행하도록 TestCaseFilter를 설정할 수 있습니다. 그렇게 할 수있는 방법이없는 것 같습니다. 즉, TestCaseFilter 명령 줄 매개 변수가 특정 속성 만 지원하는 것처럼 보입니다. 내가 잘못? 특정 DataRow와 관련된 테스트 만 실행되도록 TestCaseFilter에 사용자 지정 속성을 전달하는 방법이 있습니까?

내 테스트에서 데이터 소스는 설정과 같이이다 :
[데이터 소스 ("Microsoft.VisualStudio.TestTools.DataSource.CSV", DataAccessMethod.Sequential "| \ environments.csv | DataDirectory를", "환경 번호의 CSV")]

그리고 각 테스트에서 다음과 같이 환경을 참조하고 있습니다.
var url = TestContext.DataRow [ "URL"]. ToString();

어떤 통찰력에도 감사드립니다.

+0

정확하게 이해한다면, testdata 파일에 3 개의 행이있는 행을 하나만 실행하고 싶습니까? –

+0

맞습니다. – VishuPDX

+0

실행하려는 행을 어떻게 지정 하시겠습니까? 테스트 방법이나 그 자체로 탁월합니까? –

답변

0

간단하고 가장 좋은 방법은 testdata 파일의 환경 열 옆에 다른 열을 추가하는 것입니다. 열 이름이 RunStatus라고합시다. 값은 '예'또는 '아니요'여야하며, Runstatus가 Yes 인 URL을 실행에 포함해야한다는 논리가 있습니다.
enter image description here

TestMethod를 사용하기 전에 행의 Runstatus를 검사하는 조건을 Yes로 설정하십시오. Yes이면 TestMethod를 실행하십시오.

[TestMethod] 
public void RunTheTest(TestContext testcontext) 
{ 
    if(testcontext.DataRow["RunStatus"].ToString()=="Yes") 
    { 
    TestMethod1(); 
    } 
} 

희망이 있습니다. 행운을 빕니다 !!

+0

이것은 좋은 해결책입니다. 도와 주셔서 감사합니다. – VishuPDX