sdk
latest
false
- 概述
- 自定义活动
- 将活动迁移到 .NET 6
- 发行说明
- 构建工作流分析器规则
- 构建活动项目设置
- 创建自定义向导
- 按范围划分活动的优先级
- UiPath.Activities.Api.Base
- UiPath.Studio.Activities.Api
- UiPath.Studio.Activities.Api.Activities
- UiPath.Studio.Activities.Api.BusyService
- UiPath.Studio.Activities.Api.ExpressionEditor
- UiPath.Studio.Activities.Api.Expressions
- UiPath.Studio.Activities.Api.Licensing
- UiPath.Studio.Activities.Api.Mocking
- UiPath.Studio.Activities.Api.ObjectLibrary
- UiPath.Studio.Activities.Api.PackageBindings
- UiPath.Studio.Activities.Api.ProjectProperties
- UiPath.Studio.Activities.Api.ScopedActivities
- UiPath.Studio.Activities.Api.Settings
- UiPath.Studio.Activities.Api.Wizards
- UiPath.Studio.Activities.Api.Workflow
- UiPath.Studio.Api.Controls
- UiPath.Studio.Api.Telemetry
- UiPath.Studio.Api.Theme
- Robot JavaScript SDK
- 触发器 SDK
- 智能体 SDK
重要 :
请注意,此内容已使用机器翻译进行了部分本地化。
新发布内容的本地化可能需要 1-2 周的时间才能完成。

开发者指南
上次更新日期 2025年10月30日
实施新活动后,请测试其是否按预期运行。您可以使用以下方法之一测试活动:
测试活动代码的最简单、最快的方法是编写隔离活动代码并测试各个方案的单元测试。
例如:
[Theory]
[InlineData(1, Operation.Add, 1, 2)]
[InlineData(3, Operation.Subtract, 2, 1)]
[InlineData(3, Operation.Multiply, 2, 6)]
[InlineData(6, Operation.Divide, 2, 3)]
public void Calculator_ReturnsAsExpected(int firstNumber, Operation operation, int secondNumber, int expectedResult)
{
var calculator = new Calculator()
{
SelectedOperation = operation
};
var result = calculator.ExecuteInternal(firstNumber, secondNumber);
Assert.Equal(expectedResult, result);
}[Theory]
[InlineData(1, Operation.Add, 1, 2)]
[InlineData(3, Operation.Subtract, 2, 1)]
[InlineData(3, Operation.Multiply, 2, 6)]
[InlineData(6, Operation.Divide, 2, 3)]
public void Calculator_ReturnsAsExpected(int firstNumber, Operation operation, int secondNumber, int expectedResult)
{
var calculator = new Calculator()
{
SelectedOperation = operation
};
var result = calculator.ExecuteInternal(firstNumber, secondNumber);
Assert.Equal(expectedResult, result);
}上面的代码片段示例创建
Calculator类的新实例,并调用ExecuteInternal函数。没有与此上下文中的活动特定相关的内容,基本的单元测试原则适用。
要查看示例,请前往 GitHub 中的示例“计算器”活动。
工作流测试是一种单元测试,它依赖于
WorkflowInvoker类将活动放置在工作流中,并像 UiPath Robot 运行一样运行该活动:
[Fact]
public void Divide_ReturnsAsExpected()
{
var activity = new Calculator()
{
FirstNumber = 4,
SecondNumber = 2,
SelectedOperation = Operation.Divide
};
var runner = new WorkflowInvoker(activity);
runner.Extensions.Add(() => workflowRuntimeMock.Object);
var result = runner.Invoke(TimeSpan.FromSeconds(1)); //the runner will return a dictionary with the values of the OutArguments
//verify that the result is as expected
Assert.Equal(2, result["Result"]);
//verify that we logged a message
workflowRuntimeMock.Verify(x => x.LogMessage(It.IsAny<LogMessage>()), Times.Once);
}[Fact]
public void Divide_ReturnsAsExpected()
{
var activity = new Calculator()
{
FirstNumber = 4,
SecondNumber = 2,
SelectedOperation = Operation.Divide
};
var runner = new WorkflowInvoker(activity);
runner.Extensions.Add(() => workflowRuntimeMock.Object);
var result = runner.Invoke(TimeSpan.FromSeconds(1)); //the runner will return a dictionary with the values of the OutArguments
//verify that the result is as expected
Assert.Equal(2, result["Result"]);
//verify that we logged a message
workflowRuntimeMock.Verify(x => x.LogMessage(It.IsAny<LogMessage>()), Times.Once);
}上面的代码片段创建了该活动的新实例,但并未直接调用实例的方法,而是将活动放置在
WorkflowInvoker中,并将其作为工作流的一部分运行。工作流最终会在Calculator类上调用Execute函数。请注意,此函数受保护,您无法直接调用,这是使用此方法的间接优势。
当活动依赖于其他活动的结果时,通常使用此方法。在这种情况下,您需要创建包含多个活动的工作流,并让
WorkflowInvoker执行该工作流。
有时,有必要在 UiPath.Robot 执行程序中测试活动代码。 为此,我们可以使用以下两个选项之一。
选项 1:System.Diagnostics.Debugger.Launch()
- 在要在代码中设置断点的位置添加“
Debugger.Launch()”。 - 在 UiPath.Studio 中构建新包并更新项目中的版本,然后选择“运行” 。
-
JIT 调试器会提示你选择要用于调试的 Visual Studio 实例。
-
选择实例后,JIT 将在添加了
Debugger.Launch()的行处停止执行,并从该行开始正常的调试过程。