Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Environment.exit()退出,但保持测试运行_C#_.net_Exit - Fatal编程技术网

C# Environment.exit()退出,但保持测试运行

C# Environment.exit()退出,但保持测试运行,c#,.net,exit,C#,.net,Exit,我正在为我为验证文件而编写的验证工具创建一些测试。当它正在检查的文件中发现错误时,我调用。当程序正常运行时,退出该程序效果良好 但是,当我运行测试时,它会出现在环境中。退出测试会终止,但我希望以后继续测试,并检查程序生成的文件。当测试终止时,它会给出以下消息: 测试运行时代理进程已停止 是否有任何方法可以阻止测试因此提前结束?是否有其他方法可以终止程序但继续测试?我应该考虑多线程吗? 或者我应该重新考虑我的实现吗?我的建议是,当检查文件时出现错误时,抛出异常(如果它尚未抛出)。 在生产代码中,使

我正在为我为验证文件而编写的验证工具创建一些测试。当它正在检查的文件中发现错误时,我调用。当程序正常运行时,退出该程序效果良好

但是,当我运行测试时,它会出现在环境中。退出测试会终止,但我希望以后继续测试,并检查程序生成的文件。当测试终止时,它会给出以下消息:

测试运行时代理进程已停止

是否有任何方法可以阻止测试因此提前结束?是否有其他方法可以终止程序但继续测试?我应该考虑多线程吗?
或者我应该重新考虑我的实现吗?

我的建议是,当检查文件时出现错误时,抛出异常(如果它尚未抛出)。 在生产代码中,使用try/catch和inside-catch调用此方法,您可以执行Environment.Exit

现在编写两个不同的测试 一个用来测试有效文件的。在这种情况下,它应该毫无问题地遍历所有断言。 第二步测试具有错误条件的文件。在这种情况下,您可以使用类似于nunit的ExpectedException的内容来确认它是否引发了适当的异常

因此,简言之,请重新考虑您的实现。

删除环境。退出并抛出一个异常,该异常除了基本异常处理程序之外没有被任何东西捕获,该异常处理程序可以打印消息,也可以不打印消息,然后退出

测试运行期间抛出的异常不会被捕获,因此测试将正常失败并继续。正常运行应用程序时,异常会导致堆栈展开,直到基本异常处理程序退出应用程序


如果您还想捕获不同线程上的异常,请查看,如何验证文件?你在读它的内容吗?也许你可以做流。关闭;把那个文件归档并继续。