I am trying to create a library of components that can be used to create a CICD pipeline using UiPath Robots, for UiPath code. My sample pipeline is as follows
- Pull Repository from Source Control
- Package source code into NuGet package
- Upload package to QA Orchestrator
- Run Test Sets
- Validate Test Set Results
6a. If any failed, or timeout for execution exceeded, error out of the pipeline
6b. If all test sets passed, deploy to Production Orchestrator
*Note that I am using the Testing tab withing Orchestrator for all of this, not the TestManager suite.
I currently have all of the steps working as I had originally intended, however, I noticed that after uploading my package that was created using the UiRobot.exe command line, my test cases are not updated. Upon further research, I realized its because when you publish test cases from Studio, it’s actually creating a completely new package with the ‘_Tests’ suffix and uploading that. Then, those packages are used to create a process, and the Test Sets/Cases/Executions thereafter.
I scoured the internet for any information including the docs for both the UiRobot.exe, as well as the UiPath.Studio.CommandLine.exe CLIs, but couldn’t find any information as to how to achieve this ‘Publish Test Cases’ functionality through the CLI. I also looked into the logs and noticed that there is a Preprocessing step, and a Compiler step that are configured using temporary files within my AppData that reflect all of the options for the Preprocessor and Compiler. This didn’t seem like it would lead anywhere as the only things that were different were what files to include, and didn’t include any flag for whether it was doing those steps for Tests or Processes.
FInally, I stumbled into an observation that if I don’t press OK on the popup after I publish (either Test Cases or Processes) to Orchestrator, the project directory actually contains the assembled DLLs and other files that correspond to the end-state of the compilation activities. Here, I noticed a few differences between when I chose to publish the process or publish the test cases:
- There is a XAML that is automatically generated called “CoverageMergeHelperWorkflow.xaml” when publishing test cases.
- The project.json has several differences within it – See Diffs here CICDDemo - Diff Checker
At this point, I made the assumption that if I were to update the project.json as part of my pipeline, I could then use the UiRobot.exe CLI once again to pack and publish the Tests for my project. I started working on creating a workflow that converts the project.json from its ‘Process’ mode to its ‘Tests’ mode, but soon realized that it would be a significant effort to ensure that there are no errors in this process as I don’t know the scope of what would affect it.
So there are a couple of questions I have at this point:
- Is there an easier way to package and/or publish test cases from a project through the CLI?
- If not, is there any documentation you can provide that would help me figure it out myself?
- Is it worth it to build the Process-Tests converter? Is UiPath going to provide this functionality within the next few release cycles?
P.S: Sorry if this is incorrectly tagged or has been previously asked and answered.