我刚刚在Visual Studio .NET中发现了单元测试项目,并且正在使用测试方法来设置我开发的全局代码示例。
某些全局方法涉及显示可重用的对话框,如日期选择器和输入框。麻烦的是,有时表格会显示,有时他们会赢。
我认为这与模态有关,因为我有一个可以模态或非模态显示的报表预览表单。当我以非模态显示时,它不会显示。当我以模态方式显示它时,确实如此。
尝试输入框永远不会起作用:
string input = "";
using (InputBox box = new InputBox(Title, Prompt, Default))
{
DialogResult result = box.ShowDialog();
input = box.txtInput.Text.Trim();
}
return input;
执行停止在" box.ShowDialog()"在这一点上,我可以检查框,看看它的尺寸,位置和可见性都已正确配置 - 但我看不到表格。我必须取消测试以阻止一切。
我喜欢使用单元测试项目作为游乐场并展示现有代码,但如果我无法显示某些表单,那么它似乎非常有限。我意识到这不是真正的单元测试的意思,但我希望我能用这种方式构建一个有趣的小沙箱,以帮助我的开发人员加快速度。
答案 0 :(得分:16)
我终于在单个表单属性上取得了一些成功(并且缺乏成功): ShowInTaskbar 。
当表单将该属性设置为true时,此类表单将不会显示单元测试方法。当该属性为false时,将显示所有表单。所以,据我所知,这是规则,以确保表单可以从单元测试中显示:
这让我可以显示和测试我的所有实用工具表单,例如日期选择器和登录屏幕。
答案 1 :(得分:0)
我遇到了同样的问题。该对话框闪烁可见然后消失。它已经是 TopMost,我尝试了另一个技巧,在调用 showdialog 之前将其设置为可见然后不可见,但没有任何效果。
然后我检查了另一个运行良好的对话框,它的 ControlBox = true。我试过了,它奏效了!
这绝对适用于这个问题。