当前位置: 首页 > 知识库问答 >
问题:

在TeamCity代理上运行Azure计算模拟器

龚威
2023-03-14

我在 TeamCity 代理上运行计算模拟器时遇到问题,作为使用 xunit 进行集成测试的 CI 过程的一部分。我使用以下代码启动模拟器并在执行 Xunit 测试时部署我的实例。

    ExecuteCsrunWith(serviceDirectory + " " + configurationFile);

    private ProcessExecutionResult ExecuteCsrunWith(string argument)
    {
        var result = new ProcessExecutionResult();
        using (var process = new Process())
        {
            process.StartInfo = new ProcessStartInfo(PathToCsrun, argument)
            {
                UseShellExecute = false,
                RedirectStandardOutput = true,
                RedirectStandardError = true
            };
            process.Start();
            result.Output = process.StandardOutput.ReadToEnd();
            result.Error = process.StandardError.ReadToEnd();
            process.WaitForExit();
           Log(result.Output);
           Log(result.Error);
        }
        return result;
    }

测试不起作用,我在事件日志中出现此错误:

应用程序:csmonitor.exe 框架版本:v4.0.30319 描述:由于未处理的异常,进程已终止。异常信息: System.InvalidOperationException Stack: at System.Windows.Forms.MessageBox.ShowCore(System.Windows.Forms.IWin32Window, System.String, System.String, System.Windows.Forms.MessageBoxButtons, System.Windows.Forms.MessageBoxIcon, System.Windows.Forms.MessageBoxDefaultButton, System.Windows.Forms.MessageBoxOptions, Boolean) at System.Windows.Forms.MessageBox.Show(System.String, System.String, System.Windows.Forms.MessageBoxButtons,System.Windows.Forms.MessageBoxIcon) at Microsoft.ServiceHosting.Tools.CloudServicesMonitor.Program.Main(System.String[])

其次是:

出错应用程序名称:csmonitor.exe,版本:2.4.6489.1,时间戳:0x53bdc3cc出错模块名称:KERNELBASE.dll,版本:6.2.9200.16864,时间戳:0x531d34d8异常代码:0xe0434352错误偏移量:0x0000000000047b8c出错进程id: 0xe98出错应用程序开始时间:0x 01 cf 4c S9 C18 a 8431出错应用程序路径:C:\Program Files

我需要使用UseShellExecute=false,因为我需要重定向并读取输出。

共有1个答案

孟树
2023-03-14

问题是:Teamcity代理是作为(本地系统)帐户运行的。当csrun.exe进程开始使用(本地系统)帐户时,似乎是计算模拟器中的一个问题。

修复:我更改了TeamCity Agent(一个windows服务)以开始使用自定义(构建主)帐户,现在一切都按预期工作。

 类似资料:
  • 问题内容: 最近,我们开始使用Teamcity进行构建管理,并使用ANT脚本运行selenium junit测试。测试成功运行,并显示为在teamcity控制台上通过。如果我登录到构建代理机器,则在运行测试时,我期望能够看到浏览器窗口打开并且填充和提交字段。我没有看到Firefox浏览器窗口打开,想知道我的测试如何通过。当我在Eclipse中运行相同的测试脚本时,将打开Firefox浏览器窗口,并

  • 我想为以下e2e场景添加一个测试: 我的应用程序通过内部代理服务器向外部服务发出web请求,代理服务器操作请求主体,将请求转发给目的主机,并返回返回的响应。 例如,我向(通过)发送请求。 代理服务器修改请求以填充 cc 详细信息,并将其转发到带有正文 外部。服务返回状态OK。代理服务器返回响应而不进行修改。 如何使用线束测试此工作流?我可以为做但我不知道如何使线对代理与我的网络客户端的代理设置一起

  • 同样的结果。 然后我试过: 当我尝试在android-sdk模拟器上运行应用程序时,它会得到上面相同的错误,但没有。 从android studio我可以运行这个应用程序,它在GenyMotion上工作。请告诉我在android模拟器上运行我的应用程序应该做什么?

  • 我试图在Android Studio上运行一个模拟器,但它无法启动。 我有Android Studio(版本23Marshmallow),配置了 当我在仿真(nexus 5x api 23 android 6.0)中运行我的应用程序时,我得到以下错误: 等待设备时出错:AVD Nexus_5X_API_23的模拟器进程被终止。 任何人都可以帮我吗?

  • 我尝试在我的Android应用程序中实现Google MapsV2,但不幸的是,我得到的不是地图,而是这样的消息: 是否可以在Android模拟器(平台4.2)上运行这些地图?