Skip to content

Commit f566cff

Browse files
kashish2508guptakashish
andauthored
feat(playwrighttesting): Added runName feature (#47062)
* feat(playwrighttesting): Added runName feature * update * update * update * ran script * added test --------- Co-authored-by: guptakashish <[email protected]>
1 parent 0636f60 commit f566cff

File tree

6 files changed

+102
-2
lines changed

6 files changed

+102
-2
lines changed

sdk/playwrighttesting/Azure.Developer.MicrosoftPlaywrightTesting.TestLogger/api/Azure.Developer.MicrosoftPlaywrightTesting.TestLogger.netstandard2.0.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public partial class RunSettingKey
3535
public static readonly string NumberOfTestWorkers;
3636
public static readonly string Os;
3737
public static readonly string RunId;
38+
public static readonly string RunName;
3839
public static readonly string ServiceAuthType;
3940
public static readonly string UseCloudHostedBrowsers;
4041
public RunSettingKey() { }

sdk/playwrighttesting/Azure.Developer.MicrosoftPlaywrightTesting.TestLogger/src/Constants.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,11 @@ public class RunSettingKey
184184
/// Number of NUnit test workers.
185185
/// </summary>
186186
public static readonly string NumberOfTestWorkers = "NumberOfTestWorkers";
187+
188+
/// <summary>
189+
/// The run name setting key.
190+
/// </summary>
191+
public static readonly string RunName = "RunName";
187192
}
188193

189194
internal class Constants

sdk/playwrighttesting/Azure.Developer.MicrosoftPlaywrightTesting.TestLogger/src/Model/CloudRunMetadata.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ internal class CloudRunMetadata
99
{
1010
internal string? WorkspaceId { get; set; }
1111
internal string? RunId { get; set; }
12+
internal string? RunName { get; set; }
1213
internal Uri? BaseUri { get; set; }
1314
internal string? PortalUrl
1415
{

sdk/playwrighttesting/Azure.Developer.MicrosoftPlaywrightTesting.TestLogger/src/PlaywrightReporter.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,8 @@ internal void InitializePlaywrightReporter(string xmlSettings)
101101
runParameters.TryGetValue(RunSettingKey.Os, out var osType);
102102
runParameters.TryGetValue(RunSettingKey.ExposeNetwork, out var exposeNetwork);
103103
nunitParameters.TryGetValue(RunSettingKey.NumberOfTestWorkers, out var numberOfTestWorkers);
104+
runParameters.TryGetValue(RunSettingKey.RunName, out var runName);
105+
104106
string? enableGithubSummaryString = enableGithubSummary?.ToString();
105107
string? enableResultPublishString = enableResultPublish?.ToString();
106108

@@ -148,6 +150,7 @@ internal void InitializePlaywrightReporter(string xmlSettings)
148150
var cloudRunMetadata = new CloudRunMetadata
149151
{
150152
RunId = cloudRunId,
153+
RunName = runName?.ToString(),
151154
WorkspaceId = workspaceId,
152155
BaseUri = baseUri,
153156
EnableResultPublish = _enableResultPublish,

sdk/playwrighttesting/Azure.Developer.MicrosoftPlaywrightTesting.TestLogger/src/Processor/DataProcessor.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,19 @@ public TestRunDto GetTestRun()
2929
{
3030
var startTime = _cloudRunMetadata.TestRunStartTime.ToString("yyyy-MM-ddTHH:mm:ssZ");
3131
var gitBasedRunName = ReporterUtils.GetRunName(CiInfoProvider.GetCIInfo())?.Trim();
32-
string runName = string.IsNullOrEmpty(gitBasedRunName) ? _cloudRunMetadata.RunId! : gitBasedRunName!;
32+
string runName;
33+
if (!string.IsNullOrEmpty(_cloudRunMetadata.RunName))
34+
{
35+
runName = _cloudRunMetadata.RunName!;
36+
}
37+
else if (!string.IsNullOrEmpty(gitBasedRunName))
38+
{
39+
runName = gitBasedRunName!;
40+
}
41+
else
42+
{
43+
runName = _cloudRunMetadata.RunId!;
44+
}
3345
var run = new TestRunDto
3446
{
3547
TestRunId = _cloudRunMetadata.RunId!,

sdk/playwrighttesting/Azure.Developer.MicrosoftPlaywrightTesting.TestLogger/tests/Processor/DataProcessorTests.cs

Lines changed: 79 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using Azure.Developer.MicrosoftPlaywrightTesting.TestLogger.Processor;
66
using Azure.Developer.MicrosoftPlaywrightTesting.TestLogger.Utility;
77
using Microsoft.VisualStudio.TestPlatform.ObjectModel;
8+
using Moq;
89

910
namespace Azure.Developer.MicrosoftPlaywrightTesting.TestLogger.Tests.Processor
1011
{
@@ -68,6 +69,32 @@ public void GetTestRun_ReturnsTestRunDto()
6869
Assert.IsNotNull(result.TestRunConfig!.Shards);
6970
Assert.AreEqual(1, result.TestRunConfig!.Shards!.Total);
7071
}
72+
[Test]
73+
public void GetTestRun_ShouldUseRunName_WhenRunNameIsNotEmpty()
74+
{
75+
var cloudRunMetadata = new CloudRunMetadata
76+
{
77+
RunName = "runName",
78+
WorkspaceId = "workspaceId",
79+
RunId = "runId",
80+
AccessTokenDetails = new()
81+
{
82+
oid = "oid",
83+
userName = " userName "
84+
}
85+
};
86+
var cIInfo = new CIInfo
87+
{
88+
Branch = "branch_name",
89+
Author = "author",
90+
CommitId = "commitId",
91+
RevisionUrl = "revisionUrl",
92+
Provider = CIConstants.s_gITHUB_ACTIONS
93+
};
94+
var dataProcessor = new DataProcessor(cloudRunMetadata, cIInfo);
95+
TestRunDto result = dataProcessor.GetTestRun();
96+
Assert.AreEqual("runName", result.DisplayName);
97+
}
7198

7299
[Test]
73100
public void GetTestRunShard_ReturnsTestRunShardDto()
@@ -151,7 +178,58 @@ public void GetTestCaseResultData_WithNonNullTestResult_ReturnsTestResults()
151178
Assert.AreEqual(TestCaseResultStatus.s_iNCONCLUSIVE, result.ResultsSummary.Status);
152179
Assert.AreEqual(TestCaseResultStatus.s_iNCONCLUSIVE, result.Status);
153180
}
154-
181+
[Test]
182+
[Ignore("Need to mock GetRunName response")]
183+
public void GetTestRun_ShouldUseGitBasedRunName_WhenRunNameIsEmptyAndGitBasedRunNameIsNotEmpty()
184+
{
185+
var cloudRunMetadata = new CloudRunMetadata
186+
{
187+
RunName = "",
188+
WorkspaceId = "workspaceId",
189+
RunId = "runId",
190+
AccessTokenDetails = new()
191+
{
192+
oid = "oid",
193+
userName = " userName "
194+
}
195+
};
196+
var cIInfo = new CIInfo
197+
{
198+
Branch = "branch_name",
199+
Author = "author",
200+
CommitId = "commitId",
201+
RevisionUrl = "revisionUrl",
202+
Provider = CIConstants.s_gITHUB_ACTIONS
203+
};
204+
var gitBasedRunName = ReporterUtils.GetRunName(cIInfo);
205+
var dataProcessor = new DataProcessor(cloudRunMetadata, cIInfo);
206+
TestRunDto result = dataProcessor.GetTestRun();
207+
Assert.AreEqual(gitBasedRunName, result.DisplayName);
208+
}
209+
[Test]
210+
[Ignore("Need to mock GetRunName response")]
211+
public void GetTestRun_ShouldUseRunId_WhenRunNameAndGitBasedRunNameAreEmpty()
212+
{
213+
var cloudRunMetadata = new CloudRunMetadata
214+
{
215+
RunName = "",
216+
WorkspaceId = "workspaceId",
217+
RunId = "runId",
218+
AccessTokenDetails = new()
219+
{
220+
oid = "oid",
221+
userName = " userName "
222+
}
223+
};
224+
var cIInfo = new CIInfo
225+
{
226+
};
227+
var reporterUtilsMock = new Mock<ReporterUtils>();
228+
reporterUtilsMock.Setup(r => ReporterUtils.GetRunName(cIInfo)).Returns(string.Empty);
229+
var dataProcessor = new DataProcessor(cloudRunMetadata, cIInfo);
230+
TestRunDto result = dataProcessor.GetTestRun();
231+
Assert.AreEqual("runId", result.DisplayName);
232+
}
155233
[Test]
156234
public void GetRawResultObject_WithNullTestResult_ReturnsRawTestResultWithEmptyErrorsAndStdErr()
157235
{

0 commit comments

Comments
 (0)