CI (TeamCity) 中的测试实例化一个 UserControl 并将其内容呈现为 png
[Test, STAThread]
public void TrySavingWinFormControlAsPng()
{
// tried with and without this two lines, no differences
//System.Windows.Forms.Application.EnableVisualStyles();
//System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);
var control = new MyTestUserControl();
using (var bmp = new System.Drawing.Bitmap(300, 200))
{
control.DrawToBitmap(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height));
bmp.Save(tempFileName);
}
}
我遇到的问题是在本地和测试服务器上我得到不同的图像。在测试机器(Windows 10 企业版 21H2)上,控件看起来像“3d”,就好像没有应用平面 Windows 主题一样。
本地:
在 TeamCity 上
我考虑过在那些测试服务器上关闭某些服务,例如“桌面窗口管理器”,但我认为在 win10 中它是强制性的,它甚至不再出现在服务列表中。 我想到的另一件事是 TeamCity 测试确实作为服务运行。事实上,当测试在 TC 上远程运行时,
System.Environment.UserInteractive
是错误的。
有什么明显的东西我忽略了吗?