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
(这最终是我的选择)