Windows 正在查找用于单元/集成测试的文件夹比较实用程序

Windows 正在查找用于单元/集成测试的文件夹比较实用程序,windows,unit-testing,filesystems,integration-testing,Windows,Unit Testing,Filesystems,Integration Testing,上下文: 环境:MS Windows 7或2008。 代码:.NET(C#) 我写了一些改变文件系统的代码:复制文件、删除文件、创建文件夹等等 我想对此代码进行一些集成测试:我想在给定的文件夹上执行代码,然后将结果与预定义的预期文件夹进行比较。 我所需要的只是一个文件夹比较工具,它可以比较文件夹结构,只基于名称(其他参数,如创建日期、大小、权限,都是不相关的)。 最重要的是,它应该可以在代码(.NET)中轻松地自动化,或者作为具有可读输出的命令行实用程序自动化 有什么建议吗?您可以使用cmdle

上下文:
环境:MS Windows 7或2008。
代码:.NET(C#)

我写了一些改变文件系统的代码:复制文件、删除文件、创建文件夹等等

我想对此代码进行一些集成测试:我想在给定的文件夹上执行代码,然后将结果与预定义的预期文件夹进行比较。
我所需要的只是一个文件夹比较工具,它可以比较文件夹结构,只基于名称(其他参数,如创建日期、大小、权限,都是不相关的)。
最重要的是,它应该可以在代码(.NET)中轻松地自动化,或者作为具有可读输出的命令行实用程序自动化


有什么建议吗?

您可以使用cmdlet编写一个简单的PowerShell脚本:

$expected = Get-ChildItem C:\ExpectedDirTree
$actual = Get-ChildItem C:\ActualDirTree

Compare-Object $expected $actual -Property Name
此脚本将根据节点的
Name
属性(可以是或对象)比较两个目录结构。结果是一个对象数组,以一种相当容易解析的格式表示两种结构之间的差异:

Name                SideIndicator
-----------         -------------
SomeDirectory            =>
SomeFile                 <=
名称侧指示器
-----------         -------------
SomeDirectory=>

SomeFile我重新考虑了一下,发现列出所有文件及其相对路径(按路径和名称排序)就足够了:如果实际的文件列表等于预期的文件列表,则测试通过。否则,它将失败

可以通过以下方式列出文件:

  • Windows命令行
    dir
    命令,但缺少相对路径功能
  • 代码(也应该进行测试)
  • 外部程序,如:
    list-sort-relnames c:\my\path\+tofile c:\output\my\u list.txt

    (这最终是我的选择)