我有一个集成测试工具,可以同时启动一个控制台exe,同时每个都在自己的appdomain中。一旦任何一个控制台exe应用程序退出其appdomain,它就会导致stdin,stdout,stderr关闭所有剩余的控制台exe应用程序域。也就是说,即使应用程序继续,控制台也会关闭。这太糟糕了,因为其他仍然活跃的“控制台应用程序”还有其他材料输出到屏幕上。
我想知道是否有办法使控制台保持打开状态,即使其中一个控制台exe应用程序域退出,直到我很好并准备让控制台真正关闭。
好奇的是,我的集成测试工具正在从VS单元测试框架(vstesthost.exe)执行。我不认为细节与问题有关,但我希望控制台保持打开直到我的测试完成。当然,单元测试框架不应该依赖于Console输出的值,但是当我调试测试时它会有所帮助。顺便说一下,我从单元测试框架运行集成测试的事实是偏离主题的。 :)
答案 0 :(得分:1)
有趣的方法......我想,即使您解决了这个问题,您打算如何处理std.out和std.err上的并发问题?
我已经做了几次以解决整个问题:
希望您明白这一点,您的自定义文本编写器可以根据需要同步输出。我不知道子app-domain是否会继承父域的自定义Console.Out / Error,你也可以尝试这样做以简化所需的代码。