上下文:
环境:MS Windows 7或2008.
代码:.NET(C#)
我编写了一些更改文件系统的代码:复制文件,删除文件,创建文件夹等。
我想对此代码进行一些集成测试:我想在给定文件夹上执行代码,然后将结果与预定义的预期文件夹进行比较。
我只需要一个文件夹比较工具,它可以比较文件夹结构,仅基于名称(其他参数,如创建日期,大小,权限 - 无关紧要)。
最重要的是,它应该很容易在代码(.NET)中自动化,或者作为具有可读输出的命令行实用程序自动化。
有什么建议吗?
答案 0 :(得分:1)
您可以使用Compare-Object cmdlet编写一个简单的PowerShell脚本:
$expected = Get-ChildItem C:\ExpectedDirTree
$actual = Get-ChildItem C:\ActualDirTree
Compare-Object $expected $actual -Property Name
此脚本将根据节点的Name
属性比较两个目录结构,这些属性可以是DirectoryInfo或FileInfo个对象。结果是一个对象数组,它们以一种相当容易解析的格式表示两个结构之间的差异:
Name SideIndicator
----------- -------------
SomeDirectory =>
SomeFile <=
结果数组中的对象有两个属性,可用于确定测试结果:
Name
:一个结构中存在的目录或文件的名称,而不是另一个结构中的目录或文件的名称SiteIndicator
:一个字符串,表示对象是否存在于比较的左侧的结构中或右侧的 < / LI>