gpt4 book ai didi

c# - 仅在 Teamcity 上测试失败

转载 作者:行者123 更新时间:2023-11-30 21:41:14 24 4
gpt4 key购买 nike

我有一个测试(将文件上传到)在本地(在我的电脑上)完美运行,在 TC 上完美运行。但!当我运行 MSTSC(我的服务器上的远程桌面 - Windows Server 2012)并实际观看测试运行时,它仅在 TC 上运行良好。

当触发器作为 TeamCity 构建代理的一部分运行并在我不在远程桌面上运行我的测试时,它会失败。顺便说一句,我还尝试在后台对 TeamCity 构建代理运行我的测试,但它也失败了。我单击一个元素以触发窗口打开对话框弹出,然后使用以下内容:

  public static void OpenFileNew(string FileNameToAttach)
{
Process pp = Process.GetCurrentProcess();
if (pp != null)
{
IntPtr h = pp.MainWindowHandle;
SetForegroundWindow(h);
}

SendKeys.SendWait("\\\\nas01\\qa\\TestFiles\\" + FileNameToAttach);
Thread.Sleep(3000);
SendKeys.SendWait("{ENTER}");
Thread.Sleep(3000);
}

下一步是检查 td 标记名是否有特定文本。上传文件后,td 应包含刚刚上传的完整文件名。

 public bool CheckFileNameToUploadExists(string FullFileName)
{

bool IsFileExist = false;
WebDriverWait wait = new WebDriverWait(_webdriver, new TimeSpan(0, 0, 30));
var TDs = wait.Until(x => x.FindElements(By.TagName("td")));
for (int i = 0; i < TDs.Count - 1; i++)
{
var td = TDs[i].Text.ToString();
Thread.Sleep(2000);
_test.Log(LogStatus.Pass, td);
if(td == FullFileName)
IsFileExist = true;
}
return IsFileExist;
}

如果它不存在,则调用断言。这实际上是失败的。

最佳答案

当您离开远程桌面 session 时,您将“杀死”桌面,并且无法SetForegroundWindow

当您离开 RDP session 时,您可以编写这个小脚本,而不是注销/关闭应用程序:

for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
%windir%\System32\tscon.exe %%s /dest:console
)

并在您想退出 session 时以管理员身份运行它。

关于c# - 仅在 Teamcity 上测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43603155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com