[xharness] Add support for running xtro in .NET mode.
This commit is contained in:
Родитель
234f593511
Коммит
7e255ddcb5
|
@ -189,11 +189,32 @@ namespace Xharness.Jenkins {
|
|||
var runXtroReporter = new RunXtroTask (this, buildXtroTests, processManager, crashReportSnapshotFactory) {
|
||||
Platform = TestPlatform.Mac,
|
||||
TestName = buildXtroTests.TestName,
|
||||
Mode = "Legacy Xamarin",
|
||||
Ignored = buildXtroTests.Ignored,
|
||||
WorkingDirectory = buildXtroTests.WorkingDirectory,
|
||||
AnnotationsDirectory = buildXtroTests.WorkingDirectory,
|
||||
};
|
||||
Tasks.Add (runXtroReporter);
|
||||
|
||||
var buildDotNetXtroTests = new MakeTask (jenkins: this, processManager: processManager) {
|
||||
Platform = TestPlatform.All,
|
||||
TestName = "Xtro",
|
||||
Target = "dotnet-wrench",
|
||||
WorkingDirectory = Path.Combine (HarnessConfiguration.RootDirectory, "xtro-sharpie"),
|
||||
Ignored = !IncludeXtro && !IncludeDotNet,
|
||||
Timeout = TimeSpan.FromMinutes (15),
|
||||
};
|
||||
|
||||
var runDotNetXtroReporter = new RunXtroTask (this, buildDotNetXtroTests, processManager, crashReportSnapshotFactory) {
|
||||
Platform = TestPlatform.Mac,
|
||||
TestName = buildDotNetXtroTests.TestName,
|
||||
Mode = ".NET",
|
||||
Ignored = buildDotNetXtroTests.Ignored,
|
||||
WorkingDirectory = buildDotNetXtroTests.WorkingDirectory,
|
||||
AnnotationsDirectory = Path.Combine (buildDotNetXtroTests.WorkingDirectory, "api-annotations-dotnet"),
|
||||
};
|
||||
Tasks.Add (runDotNetXtroReporter);
|
||||
|
||||
var buildDotNetGeneratorProject = new TestProject (Path.GetFullPath (Path.Combine (HarnessConfiguration.RootDirectory, "bgen", "bgen-tests.csproj"))) {
|
||||
IsDotNetProject = true,
|
||||
};
|
||||
|
|
|
@ -8,21 +8,27 @@ using Microsoft.DotNet.XHarness.iOS.Shared.Logging;
|
|||
namespace Xharness.Jenkins.TestTasks {
|
||||
class RunXtroTask : MacExecuteTask
|
||||
{
|
||||
public string AnnotationsDirectory;
|
||||
string mode;
|
||||
|
||||
public RunXtroTask (Jenkins jenkins, BuildToolTask build_task, IMlaunchProcessManager processManager, ICrashSnapshotReporterFactory crashReportSnapshotFactory)
|
||||
: base (jenkins, build_task, processManager, crashReportSnapshotFactory)
|
||||
{
|
||||
}
|
||||
|
||||
public override string Mode {
|
||||
get => mode;
|
||||
set => mode = value;
|
||||
}
|
||||
|
||||
public override async Task RunTestAsync ()
|
||||
{
|
||||
var projectDir = System.IO.Path.GetDirectoryName (ProjectFile);
|
||||
|
||||
using (var resource = await NotifyAndAcquireDesktopResourceAsync ()) {
|
||||
using (var proc = new Process ()) {
|
||||
proc.StartInfo.FileName = "/Library/Frameworks/Mono.framework/Commands/mono";
|
||||
var reporter = System.IO.Path.Combine (WorkingDirectory, "xtro-report/bin/Debug/xtro-report.exe");
|
||||
var results = System.IO.Path.Combine (Logs.Directory, $"xtro-{Timestamp}");
|
||||
proc.StartInfo.Arguments = $"--debug {reporter} {WorkingDirectory} {results}";
|
||||
proc.StartInfo.Arguments = $"--debug {reporter} {AnnotationsDirectory} {results}";
|
||||
|
||||
Jenkins.MainLog.WriteLine ("Executing {0} ({1})", TestName, Mode);
|
||||
var log = Logs.Create ($"execute-xtro-{Timestamp}.txt", LogType.ExecutionLog.ToString ());
|
||||
|
|
Загрузка…
Ссылка в новой задаче