我正在尝试创建一个简短的 bash 脚本,可以在 cygwin 中运行,以使用 nunit-console 执行 .NET 项目中的所有 nunit 测试。目前,我的 nunit 系统版本别名为“nunit”,因此如果我运行“nunit”,它将执行 nunit-console。

我的第一步是尝试递归地找到所有测试程序集。这最有效:

find . -name *.Test*.dll

但它返回 dll 的 /obj 和 /bin 版本。

其次,我需要找出一种方法,将 find 的所有结果传递给 nunit,最好是在一次执行中,到目前为止我不知道该怎么做。

有任何 cygwin / bash 专家可以提供帮助吗?

有帮助吗?

解决方案

是否集的列表动态地改变?如果不经常更改,那么你可能并不需要确定哪些组件在运行时运行。相反,你的问题是更好地通过使用NUnit的项目的解决。例如,创建文件tests.nunit,与内容:

<NUnitProject>
  <Settings activeconfig="Debug"/>
  <Config name="Debug">
    <assembly path="ProjectA\bin\Debug\App.dll"/>
    <assembly path="ProjectB\bin\Debug\Widget.dll"/>
  </Config>
  <Config name="Release">
   <assembly path="ProjectA\bin\Release\App.dll"/>
    <assembly path="ProjectB\bin\Release\Widget.dll"/>
  </Config>
</NUnitProject>

运行NUnit控制台tests.nunit将运行在App和Widget组件所有的测试,在调试文件夹中。您也可以省略配置和activeconfig的东西,如果它是不相关的,只是名单组件,将永远被测试,无论主动配置的。

查看 NUnit的文档上的多个组件

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top