使用Visual Studiounit testingC#的命令行参数
我应该使用VSunit testing框架来确保所有代码都正常工作。 但是,我很难获得需要命令行参数的测试(因为命令行输入必须在运行时给出……并且unit testing没有真正的“运行时”)。 有没有办法用命令行参数输入运行我的unit testing? 我意识到这不是构建程序的理想方式,但遗憾的是我没有决定测试过程的工作原理。
我已经读过,我可以写一个批处理文件并将其包含在MStest / testcontainer文件夹中。 尽管如此,我必须清除一些冲击,以便这样做。 这些冲击包括:
1)我对批处理文件一无所知
2)我不知道MStest / testcontainer文件夹在哪里,如何访问它,它是如何工作的,甚至不知道如何向它添加文件(因为它似乎是隐藏的或不容易访问)。
3)我不知道我对批处理文件做了什么,即使它是在MStest / testcontainer文件夹中正确写入的。 我的测试甚至应该知道它在哪里,更不用说从中获取输入了?
总结一下:如何让VSunit testing接受命令行参数? 如果我必须使用批处理文件方法,我将非常感谢它向我解释,就像我是5.我道歉,如果我在这个主题上显得有些无助,但我找不到任何明确或有用的解释在这个特定的背景下,这些东西是如何运作的。
万分感谢。
简而言之,将解决您的问题,以及不正确的unit testing方法:-):
如果您的程序需要命令行参数,那么它应该具有static void Main(string[] args)
方法。
只需编写unit testing,即可使用通常添加的命令行参数调用此方法。
更长,更好的方法:在2中分割你的function – 一个完成工作的类,只是一个简单的程序,它获取命令行参数并将它们传递给worker。
写2unit testing – 一个,Main(xxx)实际上将参数传递给您的类,并且许多unit testing为您的实际工作者根据这些参数validation其行为。
您可以使用Process类在测试方法中启动程序的新实例。 就像是:
上述就是C#学习教程:使用Visual Studiounit testingC#的命令行参数分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
Process prop = new Process(); prop.StartInfo.FileName = "myProgram.exe"; prop.StartInfo.Arguments = "-arg1 -arg2"; prop.StartInfo.RedirectStandardOutput = true; prop.StartInfo.RedirectStandardInput = true; prop.Start(); // You can then use prop.StandardInput and prop.StandardOutput for testing. prop.WaitForExit(); int code = prop.ExitCode;
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1015316.html