最终目标是我想在本地运行一个功能应用程序进行自动化测试。我不知道如何在不使用func.exe
的情况下做到这一点。这是我的尝试:
/// <summary>
/// Setup environment for running integration tests on MyApp APIs
/// </summary>
/// <param name="testContext"></param>
[ClassInitialize]
public static void RunFileHubLocally(TestContext testContext)
{
// Do the programmatic equivalent of right-click "Debug -> Start new instance" on API.
// This uses Azure Functions Core CLI to deploy the Function App locally.
azureFunctionsCliShell = new Process();
azureFunctionsCliShell.StartInfo.UseShellExecute = false;
azureFunctionsCliShell.StartInfo.RedirectStandardOutput = true;
azureFunctionsCliShell.StartInfo.CreateNoWindow = true;
azureFunctionsCliShell.StartInfo.FileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"..\..\..\lib\azure-functions-core-tools\func.exe"); ;
var fileInTargettedWorkingDirectory = new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"..\..\..\..\..\..\src\MyApp.Api\bin\Debug\netcoreapp2.1\host.json"));
azureFunctionsCliShell.StartInfo.WorkingDirectory = fileInTargettedWorkingDirectory.Directory.FullName;
int port = FreeTcpPort();
azureFunctionsCliShell.StartInfo.Arguments = $"host start --port {port}";
apiUrl = $"http://localhost:{port}/api";
azureFunctionsCliShell.Start();
// Wait for "Application started", the line in the output that indicates the
// application is listening to the port
const string specialPhrase = "Application started";
for ( ; ; )
{
string line = azureFunctionsCliShell.StandardOutput.ReadLine();
Console.WriteLine(line);
if (line.Contains(specialPhrase))
{
break;
}
if (azureFunctionsCliShell.StandardOutput.EndOfStream)
{
throw new Exception($"Output did not contain special phrase '{specialPhrase}'. Last line: '{line}'.");
}
}
// Hold instance of HttpClient to be disposed of during cleanup
httpClient = new HttpClient();
}
这在输出时失败
未设置工作运行时。自2.0.1β。26需要工作运行时设置。请运行<code>函数设置添加函数_WORKER_RUNTIME
%%%%%%
%%%%%%
@ %%%%%% @
@@ %%%%%% @@
@@@ %%%%%%%%%%% @@@
@@ %%%%%%%%%% @@
@@ %%%% @@
@@ %%% @@
@@ %% @@
%%
%
Azure Functions核心工具(2.6.666提交哈希:2ea98edb55cd2fc249765fcf3f5e30829c7c9932)函数运行时版本:2.0.12408.0应用程序正在关闭...
当我通过控制台运行相同的命令时,它会成功
未设置工作运行时。自2.0.1β。26需要工作运行时设置。请运行<code>函数设置添加函数_WORKER_RUNTIME
%%%%%%
%%%%%%
@ %%%%%% @
@@ %%%%%% @@
@@@ %%%%%%%%%%% @@@
@@ %%%%%%%%%% @@
@@ %%%% @@
@@ %%% @@
@@ %% @@
%%
%
Azure Functions核心工具(2.6.666提交哈希:2ea98edb55cd2fc249765fcf3f5e30829c7c9932)函数运行时版本:2.0.12408.0[4/26/2019 2:29:18 PM]启动Rpc初始化服务。[4/26/2019 2:29:18 PM]初始化RpcServer......现在收听:http://0.0.0.0:63819应用程序启动。按Ctrl C关闭。
func
CLI本身就是Azure Functions运行时的包装器。
您可以选择docker
路由,而不是围绕func
CLI编写另一个包装器,该路由与在Azure本身上运行它一样接近。
使用docker,您将大大简化整个CI管道,因为大多数CI服务器都支持使用容器运行工作流。
此外,如果你愿意,你也可以将这些容器部署到Azure,但请注意,Linux还不支持消费计划,因此你必须使用Linux应用服务计划。
问题内容: 我直接使用默认的os拨号器通过以下方式创建呼叫: 是否可以直接从我的应用程序启动Skype? 我尝试传递一个数字,如下所示: 传递数字失败。 问题答案: 您需要知道Skype软件包名称(例如com.skype.android),然后才能启动它:
问题内容: 请看下面的代码 数据库连接器 数据库UI 在这种情况下,我需要通过右键单击 _数据库节点 启动服务器_来手动启动derby(我正在使用NetBeans)。这是一个嵌入式数据库,这意味着我要将其从一台计算机转移到另一台计算机,并愿意通过双击jar文件来开始,而不是在每台计算机上都配置数据库并手动启动它们。但是,如果我没有手动启动数据库,则会收到错误消息 java.sql.SQLNonTr
请看一下下面的代码 数据库连接器。JAVA 用户界面 在这种情况下,我需要通过右键单击数据库节点手动启动derby(我使用的是NetBeans) JAVAsql。SQLNonTransientConnectionException:java。网ConnectException:连接到端口1527上的服务器本地主机时出错,消息“连接被拒绝:连接”。 无论是在NetBeans内部,如果我没有手动启动它
问题内容: 我正在用Java编写服务器-客户端应用程序的代码,我需要在服务器端实现本地数据库,因此我决定使用H2数据库引擎。 要添加的另一件事是,我使用TCP连接来启动和运行数据库。到目前为止,这是我整理的内容: 连接字符串在哪里。 这段代码返回一个异常: 我关注了这篇文章。 问题答案: 这样的事情应该工作 并且输出是已建立的连接:H2 / STACKOVERFLOW 已通过h2-1.4.184测
我们有一个带有Spring MVC的现有REST API版本。我们现在正在飙升,看看我们是否可以使用Swagger(快速)生成内部文档。 我们的 REST 实现的问题在于,我们确实使用 Spring MVC 将业务对象转换为 json,但是我们有自定义的 json 转换器,它们基本上从业务对象创建 Jettison json 对象(键/值)。不幸的是,目前没有办法改变这一点。顺便说一句,输入也是如
我有一个按钮,有两种状态,开始和停止。在使用对讲的可访问性模式下,当用户双击按钮时,我会将按钮的文本更改为停止,因此我必须以某种方式对对讲说这发生了。我通过以下操作成功地将焦点移除并读取到按钮: 这样做的问题是,TalkBack只会读取内容描述,而不会说“双击激活”,当您手动选择按钮时,会阅读该内容。 以下操作无效: button.sendAccessibilityEventAccessibili