我一直在寻找一个体面的例子,大多数结果都是电源外壳的基础......
但无论如何,我确实找到了这个:http://blogs.msdn.com/b/heaths/archive/2008/04/06/functional-testing-of-cmdlets.aspx
这给了我一个开始,并允许我根据上面链接中的示例结束此测试:
using System;
using System.Collections.ObjectModel;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
using MyProject;
namespace Commands.Tests
{
[TestClass]
public class StartServiceTest
{
private RunspaceConfiguration config;
[TestInitialize]
public void Initialize()
{
config = RunspaceConfiguration.Create();
config.Cmdlets.Append(new CmdletConfigurationEntry(
"Start-UseService",
typeof(StartUseServiceCommand),
"Microsoft.Windows.Installer.PowerShell.dll-Help.xml"));
}
[TestMethod]
[DeploymentItem(@"data\example.txt")]
public void PathTest()
{
using (Runspace rs = RunspaceFactory.CreateRunspace(config))
{
rs.Open();
using (Pipeline p = rs.CreatePipeline(@"start-useservice -service ACE"))
{
Collection<PSObject> objs = p.Invoke();
Assert.AreEqual<int>(1, objs.Count);
}
}
}
}
}
文章没有解释任何内容,所以我确定&#34; data \ example.txt&#34;不适用于我,但example.txt用作示例测试中的参数。但是方法属性并没有被讨论过。
有没有人成功为他们的cmdlet编写过测试? 我也在寻找每件作品的一些解释。 (我对MSTest并不陌生,但我之前从未使用过System.Management.Automation / Runspaces命名空间)
我的cmdlet名称为Start-UseService