NUnit dll 的 Glob

Glob for NUnit dlls

我们有以下命令应该搜索测试的所有 dll:

packages\NUnit.ConsoleRunner.3.10.0\tools\nunit3-console.exe --result=${env:CI_PROJECT_DIR}\sonite.tests.xml`;transform=nunit3-junit.xslt --noheader --agents=5 --workers=5 --trace=Off ((ls -Recurse *Test(s).dll | % FullName) -Match "\bin\")

在管道中我们得到以下错误:

The term 's' is not recognized as the name of a cmdlet, function, script file, or operable

我希望它能在 s 是可选的情况下工作。我做错了什么?

编辑: 我是 运行 它来自 powershell 命令。

您可以获取所有包含 Test 字符串并以 .dll 扩展名结尾的文件,然后检查字符串是否以 Test.dllTests.dll 结尾使用一个正则表达式:

(ls -Recurse *Test*.dll | ? { $_.Name -match 'Tests?\.dll$' } | % FullName)

详情:

  • Test - Test
  • s? - 一个可选的 s
  • \.dll - .dll
  • $ - 字符串结尾。

注意-match不区分大小写,如果需要区分大小写,使用-cmatch.