- Überblick
- Benutzerdefinierte Aktivitäten
- Migrieren von Aktivitäten zu .NET 6
- Versionshinweise
- Erstellen von Workflow-Analyseregeln
- Projekteinstellungen für das Erstellen von Aktivitäten
- Erstellen benutzerdefinierter Assistenten
- Priorisieren von Aktivitäten nach Scope
- 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
- Trigger SDK
- Agent-SDKs

Entwickleranleitung
Testen Sie nach der Implementierung der neuen Aktivität, ob sie wie erwartet funktioniert. Sie können Ihre Aktivität mit einer dieser Methoden testen:
Die einfachste und schnellste Möglichkeit, den Aktivitätscode zu testen, besteht darin, Einheiten-Tests zu schreiben, die den Aktivitätscode isolieren und einzelne Szenarien testen.
Zum Beispiel:
[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 -Klasse erstellt und die Funktion ExecuteInternal aufgerufen. Es gibt nichts Spezifisches für Aktivitäten in diesem Kontext, und es gelten grundlegende Prinzipien für Einheitentests.
Um ein Beispiel anzuzeigen, wechseln Sie zur Beispielaktivität „Rechner“ in GitHub.
WorkflowInvoker basieren, um die Aktivität in einem Workflow zu platzieren und auszuführen, wie sie von UiPath Robot ausgeführt werden würde:
[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 und führt sie als Teil eines Workflows aus. Der Workflow ruft schließlich die Funktion Execute in der Klasse Calculator auf. Beachten Sie, dass diese Funktion geschützt ist und Sie sie nicht direkt aufrufen können, was ein indirekter Vorteil dieses Ansatzes ist.
WorkflowInvoker ausführen lassen.
Manchmal ist es erforderlich, den Aktivitätscode innerhalb des UiPath.Robot-Executors zu testen. Um dies zu erreichen, können wir eine von zwei Optionen verwenden.
Option 1: System.Diagnostics.Debugger.Launch()
- Fügen Sie
Debugger.Launch()an der Stelle hinzu, an der der Haltepunkt Ihren Code treffen soll. - Erstellen Sie das neue Paket, und aktualisieren Sie die Version in Ihrem Projekt in UiPath.Studio, und wählen Sie dann Ausführen aus.
-
Der JIT-Debugger fordert Sie auf, eine Visual Studio-Instanz auszuwählen, die für das Debuggen verwendet werden soll.
-
Nachdem Sie die Instanz ausgewählt haben, stoppt das JIT die Ausführung an der Zeile, in der
Debugger.Launch()hinzugefügt wurde, und ab dort kann der normale Debugprozess beginnen.
Option 2: An Prozess in Visual Studio anhängen
Eine andere Option besteht darin, die Ausführung zu verzögern und dann Visual Studio an den Executor-Prozess anzuhängen. Diese Methode erfordert zwar mehr Aufwand, ermöglicht aber das Debuggen des Aktivitätscodes ohne Änderungen.
-
Um die Ausführung zu verzögern, fügen Sie die Aktivität Verzögerung ( Delay ) oder, in einem Windows-Projekt, die Aktivität Meldungsfeld ( Message Box ) hinzu.
-
Wählen Sie Ausführen aus, wechseln Sie dann zu Visual Studio und wählen Sie Debuggen > An Prozess anhängen aus.
-
Filtern Sie die Prozessliste nach
UiPath.Executor, wählen Sie alle Prozesse aus und klicken Sie dann auf Anhängen.
Nachdem die Verzögerung abgelaufen ist, wird die Prozessausführung an dem Haltepunkt unterbrochen, den Sie in Ihrem Code hinzugefügt haben.