提交 72f20e39 编写于 作者: J Jared Parsons 提交者: Jared Parsons

More JSON

上级 dc73585b
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using Newtonsoft.Json.Linq;
using RestSharp;
using System;
using System.Collections.Generic;
using System.IO;
......@@ -11,14 +13,40 @@ namespace RunTests.Cache
{
internal sealed class WebDataStorage : IDataStorage
{
private const string NameExitCode = "exitCode";
private const string NameOutputStandard = "outputStandard";
private const string NameOutputError = "outputError";
private const string NameResultsFileName = "resultsFileName";
private const string NameResultsFileContent = "resultsFileContent";
private const string DashboardUriString = "http://jdash.azurewebsites.net";
private readonly RestClient _restClient = new RestClient(DashboardUriString);
public Task AddCachedTestResult(ContentFile conentFile, CachedTestResult testResult)
{
throw new NotImplementedException();
var obj = new JObject();
obj[NameExitCode] = testResult.ExitCode;
obj[NameOutputStandard] = testResult.StandardOutput;
obj[NameOutputStandard] = testResult.ErrorOutput;
obj[NameResultsFileName] = testResult.ResultsFileName;
obj[NameResultsFileContent] = testResult.ResultsFileContent;
var json = obj.ToString();
return Task.FromResult(true);
}
public Task<CachedTestResult?> TryGetCachedTestResult(string checksum)
public async Task<CachedTestResult?> TryGetCachedTestResult(string checksum)
{
throw new NotImplementedException();
var request = new RestRequest($"api/testcache/{checksum}");
var response = await _restClient.ExecuteGetTaskAsync(request);
var obj = JObject.Parse(response.Content);
var result = new CachedTestResult(
exitCode: obj.Value<int>(NameExitCode),
standardOutput: obj.Value<string>(NameOutputStandard),
errorOutput: obj.Value<string>(NameOutputError),
resultsFileName: obj.Value<string>(NameResultsFileName),
resultsFileContent: obj.Value<string>(NameResultsFileContent));
return result;
}
}
}
......@@ -33,7 +33,7 @@ internal static int Main(string[] args)
ITestExecutor testExecutor = new ProcessTestExecutor(options);
if (options.UseCachedResults)
{
testExecutor = new CachingTestExecutor(options, testExecutor, new LocalDataStorage());
testExecutor = new CachingTestExecutor(options, testExecutor, new WebDataStorage());
}
var testRunner = new TestRunner(options, testExecutor);
......
......@@ -17,6 +17,14 @@
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' " />
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' " />
<ItemGroup>
<Reference Include="Newtonsoft.Json">
<HintPath>..\..\..\..\..\packages\Newtonsoft.Json.8.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="RestSharp">
<HintPath>..\..\..\..\..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
......@@ -40,6 +48,9 @@
<Compile Include="TestRunner.cs" />
<Compile Include="ConsoleUtil.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<ImportGroup Label="Targets">
<Import Project="..\..\..\..\build\Targets\VSL.Imports.targets" />
</ImportGroup>
......
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="8.0.2" targetFramework="net45" />
<package id="RestSharp" version="105.2.3" targetFramework="net45" />
</packages>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册