所以我试图运行一个由TeamCity触发的powershell脚本,根据每个github提交中更改的文件名运行特定的单元测试。
以下是我从命令行运行它的方法:
C:\MyFolder\bin\NUnit.ConsoleRunner.3.4.1\tools\nunit3-console.exe "C:\MyFolder\Bin\UnitTesting.dll" --test="MyFolder.QuickTests.DaoTests.ProductDaoTests.ProductBasicTest"
但是我一直这样,它运行它从来没有运行任何测试:
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
现在当我没有像这样的--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但实际上并没有运行任何东西。
当我这样做时 - 探索它与MyFolder的相同 - 并且对MyFolder.QuickTests没有任何作用。
编辑编辑:
感谢Rob我找到了文档here,并使用--where“name = ProductBasicTest”查看了--where函数,它将运行该Test-Suite中的所有文件!
答案 0 :(得分:0)
感谢Rob遇到的一个问题,是不是用QuickTests正确识别我的命名空间。因此,每当我运行该函数时,它都无法正常运行。
要修复此问题,您可以转到Test xml文件输出,看看它运行测试的名称。
要单独运行这些,您可以使用以下命令运行它:
"nunit3-console.exe C:\PathToDll.dll --where "name = NameOfTest"