171 字
1 分钟
单元测试CommandLineUtils中的命令
引言
使用CommandLineUtils可以创建便捷的dotnet tool工具,官方的docs / samples /中包含有很多示例;但是对于如何运行Command却没有明示,如果你要单元测试自己创建的命令,要到test目录下参考官方的单元测试代码,以下列出自己实践的方法.
解决办法
- 对于不使用依赖注入的
Command,直接使用CommandLineApplication.Execute<Show>("-a");即可,其中Show为[Command("show", Description = "")] - 对于使用依赖注入的
Command可以参考这个示例
var commandLineApplication = new CommandLineApplication<Show>();var services = new ServiceCollection() .AddLogging() .AddSingleton(Program.Configuration) .AddSingleton(Program.Configuration.Get<APPConfig>())//添加依赖注入 .BuildServiceProvider();
commandLineApplication.Conventions .UseDefaultConventions() .UseConstructorInjection(services);
commandLineApplication.Parse();
var result = commandLineApplication.Execute(@"--path=/CUSTDB/1901-0048.rar", "--taskid=1907-7777");//执行命令
result.Should().Be(0);//using FluentAssertions 单元测试CommandLineUtils中的命令
https://blog.wangshuai.app/2020-04-6-单元测试commandlineutils中的命令/