2015-12-25 52 views
0

所以我在C#中使用opencv,Emgu和visual studio编写这个计算机视觉应用程序。是否可以在单元测试中显示一个窗体窗体?

我想使用微软的内置单元测试编写几个单元测试,我开始认为我在这里尝试做一些非常少见的事情,因为我根本找不到任何地方的答案在网上。

该应用程序是一个控制台应用程序,因为它不会有用户界面,但我想在编码时显示一些调试图像。我使用其中有几个PictureBox的设计师创建了一个表格。

我只是想能够做这样的事情:

DebugViewer debugViewer = new DebugViewer(); 
debugViewer.SetPicture(debugImage); 
debugViewer.Show(); 

哪里DebugViewer是我创建的FormSetPicture只需更新一PictureBox的形象。

问题是,表单从来没有出现。即使设置了ShowInTaskbar属性,任务栏中也不会显示任何内容。

我试着从主函数运行相同的代码,它工作正常。这个问题似乎是在尝试从单元测试中运行这个问题。

我也成功使用opencv函数显示图像imShow函数,即使从单元测试,所以我肯定可以从单元测试打开窗口,但我不知道为什么窗体不显示。

我意识到从单元测试打开调试窗口没什么意义,但由于我已经失去了整个下午试图解决这个问题,我认为我应该至少满足我的好奇心。

非常感谢。

回答

0

您的debugViewer窗体是以模态还是非模态显示?我只是在玩单元测试,并试图显示我有的报告预览表单。当我以模态方式显示表单时,它可以工作。当我以非模态显示时,没有任何显示。

我想象一下,如果单元测试结束,那么显示一个非模态表单,继续执行,将所有内容都取出。这意味着表单不显示。或者,也许单元测试代码知道它不能显示任何东西,除非执行停止,甚至从不显示它?不确定。但是到目前为止,我已经能够在单元测试方法中弹出几种不同的表单。

(我相信这不是一个很好的答案,但我没有点简单地回应还...)

编辑:我曾碰到也不会显示模式窗体,我无法弄清楚为什么。我可以调试测试,并且当涉及到使用ShowDialog()显示表单的行时,执行会暂停但不显示任何表单。我甚至可以在调试窗口中检查窗体并查看它的尺寸是否正确,Visible = true - 什么也没有。所以,我很难过。

相关问题