2016-10-17 4 views
0

TeamCity가 트리거하여 각 github 커밋에서 변경된 파일의 이름을 기반으로 특정 단위 테스트를 실행하는 powershell 스크립트를 실행하려고합니다. 여기Nunit-console runner가 테스트를 실행하지 않음

내가 명령 줄에서 실행하고 어떻게 : 지금

NUnit Console Runner 3.4.1 
Copyright (C) 2016 Charlie Poole 

Runtime Environment 
    OS Version: Microsoft Windows NT 10.0.14393.0 
    CLR Version: 4.0.30319.42000 

Test Files 
    MyFolder\Bin\UnitTesting.dll 

Test Filters 
    Test: MyFolder.QuickTests.DaoTests.ProductDaoTests.ProductBasicTest 


Run Settings 
    WorkDirectory: C:\Users\Me 
    ImageRuntimeVersion: 4.0.30319 
    ImageTargetFrameworkName: .NETFramework,Version=v4.0 
    ImageRequiresX86: False 
    ImageRequiresDefaultAppDomainAssemblyResolver: False 
    NumberOfTestWorkers: 2 

Test Run Summary 
    Overall result: Passed 
    Test Count: 0, Passed: 0, Failed: 0, Inconclusive: 0, Skipped: 0 
    Start time: 2016-10-17 20:28:43Z 
    End time: 2016-10-17 20:28:43Z 
    Duration: 0.303 seconds 

Results (nunit3) saved as TestResult.xml 

나는 그것을 실행

C:\MyFolder\bin\NUnit.ConsoleRunner.3.4.1\tools\nunit3-console.exe "C:\MyFolder\Bin\UnitTesting.dll" --test="MyFolder.QuickTests.DaoTests.ProductDaoTests.ProductBasicTest" 

하지만이가 계속, 그것은 단지 모든 테스트를 실행하지 실행 다음과 같은 --test 명령을 사용하지 마십시오 :

C:\MyFolder\bin\NUnit.ConsoleRunner.3.4.1\tools\nunit3-console.exe "C:\MyFolder\Bin\UnitTesting.dll" 

우리가 가지고있는 모든 단위 테스트를 실행하지만 실행하고 싶지 않습니다. 특정 빠른 작업을 실행하고 준비/프로덕션 서버로 이동할 때 큰 작업 만 실행하여 개발자가 뭔가를 할 때마다 15 분에서 20 분 정도 기다릴 필요가 없습니다.

몇 가지 추가 정보 :이를 위해 사용하고 - 내 네임 스페이스가

MyFolder.QuickTests.DaoTests.ProductDaoTests

내가 전화 오전 클래스는 다음과 같습니다

ProductBasicTest

파일 디렉토리의 % teamcity % 자리 표시 자이기 때문에 폴더 디렉토리와 같은 일부 이름이 변경되었습니다.

특정 테스트를 실행할 수 없도록 잘못 했습니까?

내 nunit-console이/run 명령이나/fixture 또는 --test =을 인식하지 못합니다.

편집 :

나는 3.5.0로 업그레이드하고 여전히 같은 문제를 얻고, 내가 --test 사용할 수 없습니다입니다.

C:\MyFolder\bin\NUnit.ConsoleRunner.3.5.0\tools\nunit3-console.exe "C:\MyFolder\Bin\UnitTesting.dll" --test="MyFolder.QuickTests.DaoTests.ProductDaoTests.ProductBasicTest" 

이는 새로운 위치이며 동일한 문제가 발생합니다.

내가 할 때 - MyFolder에 Powershell을 충돌 시키지만 실제로는 아무것도 실행하지 않습니다.

내가 할 때 --explore는 MyFolder의 경우 --where와 동일하게 수행하고 MyFolder.QuickTests의 경우에는 수행하지 않습니다.

편집 편집 : 롭에

덕분에 나는 문서 here을 발견하고 테스트 스위트에있는 모든 파일을 실행 --where "이름 = ProductBasicTest"로 --where 기능 보았다!

+1

그 형태 나 클래스 (고정) 이름이나 3.5 단지 네임 스페이스 이름을 모두 사용하여 작동합니다. 이 문제에 대해 3.5에서 수정 된 문제는 기억이 나지 않지만 업그레이드를 시도 할 수 있습니다. 또한'--where' 명령 행이나'--explore'를 시도해 볼 수 있습니다. –

+1

NUnit 3은/run 또는/fixture 명령 행 옵션도 사용하지 않습니다. 그것은 2.6.x –

+0

@ RobProuse 아, 정말 고맙습니다. 3.5로 업데이트하려고합니다. nunit-console 명령에 대한 문서의 위치를 ​​알고 계십니까? 3+ 이상? –

답변

0

Rob에게 내가 겪고있는 문제 중 하나 덕분에 QuickTest로 올바르게 네임 스페이스를 인식하지 못했습니까? 그래서 함수를 실행할 때마다 올바르게 실행되지 않았습니다.

이 문제를 해결하려면 Test xml 파일 출력으로 이동하여 실행중인 테스트 이름을 확인하십시오.

당신이 명령 이름으로 실행할 수 있습니다 개별적으로 프로그램을 실행하려면 :

"nunit3-console.exe C:\PathToDll.dll --where "name = NameOfTest"