Ready to beta test
This commit is contained in:
52
mstest/AA_UnitTestExample.cs
Normal file
52
mstest/AA_UnitTestExample.cs
Normal file
@ -0,0 +1,52 @@
|
||||
using Mesa_Backlog.Library;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Serilog;
|
||||
using System.Reflection;
|
||||
|
||||
namespace Mesa_Backlog.Tests;
|
||||
|
||||
[TestClass]
|
||||
public class AA_UnitTestExample
|
||||
{
|
||||
|
||||
private readonly ILogger _Logger;
|
||||
private readonly AppSettings _AppSettings;
|
||||
private readonly string _WorkingDirectory;
|
||||
private readonly IConfigurationRoot _ConfigurationRoot;
|
||||
|
||||
public AA_UnitTestExample()
|
||||
{
|
||||
ILogger logger;
|
||||
AppSettings appSettings;
|
||||
string workingDirectory;
|
||||
IConfigurationRoot configurationRoot;
|
||||
LoggerConfiguration loggerConfiguration = new();
|
||||
Assembly assembly = Assembly.GetExecutingAssembly();
|
||||
IConfigurationBuilder configurationBuilder = new ConfigurationBuilder()
|
||||
.AddEnvironmentVariables()
|
||||
.AddJsonFile("appsettings.Development.json");
|
||||
configurationRoot = configurationBuilder.Build();
|
||||
appSettings = Library.Binder.AppSettings.Get(configurationRoot);
|
||||
workingDirectory = IWorkingDirectory.GetWorkingDirectory(assembly.GetName().Name, appSettings.WorkingDirectoryName);
|
||||
Environment.SetEnvironmentVariable(nameof(workingDirectory), workingDirectory);
|
||||
_ = ConfigurationLoggerConfigurationExtensions.Configuration(loggerConfiguration.ReadFrom, configurationRoot);
|
||||
Log.Logger = loggerConfiguration.CreateLogger();
|
||||
logger = Log.ForContext<AA_UnitTestExample>();
|
||||
logger.Information("Complete");
|
||||
_Logger = logger;
|
||||
_AppSettings = appSettings;
|
||||
_WorkingDirectory = workingDirectory;
|
||||
_ConfigurationRoot = configurationRoot;
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TestMethodNull()
|
||||
{
|
||||
Assert.IsFalse(_Logger is null);
|
||||
Assert.IsFalse(_AppSettings is null);
|
||||
Assert.IsFalse(_WorkingDirectory is null);
|
||||
Assert.IsFalse(_ConfigurationRoot is null);
|
||||
Assert.IsFalse(string.IsNullOrEmpty(_AppSettings.ToString()));
|
||||
}
|
||||
|
||||
}
|
102
mstest/AB_UnitTestIsEnvironment.cs
Normal file
102
mstest/AB_UnitTestIsEnvironment.cs
Normal file
@ -0,0 +1,102 @@
|
||||
using Mesa_Backlog.Library;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.Configuration.Json;
|
||||
using Serilog;
|
||||
using System.Diagnostics;
|
||||
using System.Reflection;
|
||||
|
||||
namespace Mesa_Backlog.MS_Test;
|
||||
|
||||
[TestClass]
|
||||
public class AB_UnitTestIsEnvironment
|
||||
{
|
||||
|
||||
private readonly ILogger _Logger;
|
||||
private readonly AppSettings _AppSettings;
|
||||
private readonly string _WorkingDirectory;
|
||||
private readonly IsEnvironment _IsEnvironment;
|
||||
private readonly IConfigurationRoot _ConfigurationRoot;
|
||||
|
||||
public AB_UnitTestIsEnvironment()
|
||||
{
|
||||
ILogger logger;
|
||||
AppSettings appSettings;
|
||||
string workingDirectory;
|
||||
IConfigurationRoot configurationRoot;
|
||||
LoggerConfiguration loggerConfiguration = new();
|
||||
Assembly assembly = Assembly.GetExecutingAssembly();
|
||||
bool debuggerWasAttachedAtLineZero = Debugger.IsAttached || assembly.Location.Contains(@"\bin\Debug");
|
||||
IsEnvironment isEnvironment = new(processesCount: null, nullASPNetCoreEnvironmentIsDevelopment: debuggerWasAttachedAtLineZero, nullASPNetCoreEnvironmentIsProduction: !debuggerWasAttachedAtLineZero);
|
||||
IConfigurationBuilder configurationBuilder = new ConfigurationBuilder()
|
||||
.AddEnvironmentVariables()
|
||||
.AddJsonFile(isEnvironment.AppSettingsFileName);
|
||||
configurationRoot = configurationBuilder.Build();
|
||||
appSettings = Library.Binder.AppSettings.Get(configurationRoot);
|
||||
workingDirectory = IWorkingDirectory.GetWorkingDirectory(assembly.GetName().Name, appSettings.WorkingDirectoryName);
|
||||
Environment.SetEnvironmentVariable(nameof(workingDirectory), workingDirectory);
|
||||
_ = ConfigurationLoggerConfigurationExtensions.Configuration(loggerConfiguration.ReadFrom, configurationRoot);
|
||||
Log.Logger = loggerConfiguration.CreateLogger();
|
||||
logger = Log.ForContext<AB_UnitTestIsEnvironment>();
|
||||
logger.Information("Complete");
|
||||
_Logger = logger;
|
||||
_AppSettings = appSettings;
|
||||
_IsEnvironment = isEnvironment;
|
||||
_WorkingDirectory = workingDirectory;
|
||||
_ConfigurationRoot = configurationRoot;
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TestMethodNull()
|
||||
{
|
||||
Assert.IsFalse(_Logger is null);
|
||||
Assert.IsFalse(_AppSettings is null);
|
||||
Assert.IsFalse(_IsEnvironment is null);
|
||||
Assert.IsFalse(_WorkingDirectory is null);
|
||||
Assert.IsFalse(_ConfigurationRoot is null);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TestMethodTesta()
|
||||
{
|
||||
List<string> jsonFiles = new();
|
||||
foreach (IConfigurationProvider configurationProvider in _ConfigurationRoot.Providers)
|
||||
{
|
||||
if (configurationProvider is not JsonConfigurationProvider jsonConfigurationProvider)
|
||||
continue;
|
||||
jsonFiles.Add(jsonConfigurationProvider.Source.Path);
|
||||
}
|
||||
Assert.IsTrue(jsonFiles.Any());
|
||||
foreach (string jsonFile in jsonFiles)
|
||||
_ = new IsEnvironment(jsonFile);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[TestCategory(nameof(IsEnvironment.Name.WindowsDevelopment))]
|
||||
public void TestMethodTestCategory()
|
||||
{
|
||||
MethodBase? methodBase = new StackFrame().GetMethod();
|
||||
Assert.IsNotNull(methodBase);
|
||||
TestCategoryAttribute? testCategoryAttribute = methodBase.GetCustomAttribute<TestCategoryAttribute>();
|
||||
Assert.IsNotNull(testCategoryAttribute);
|
||||
foreach (string testCategory in testCategoryAttribute.TestCategories)
|
||||
_ = new IsEnvironment(testCategory);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TestMethodHardcoded()
|
||||
{
|
||||
_ = new IsEnvironment(isDevelopment: true, isStaging: false, isProduction: false);
|
||||
_ = new IsEnvironment(isDevelopment: false, isStaging: true, isProduction: false);
|
||||
_ = new IsEnvironment(isDevelopment: false, isStaging: false, isProduction: true);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TestMethodAssembly()
|
||||
{
|
||||
Assembly assembly = Assembly.GetExecutingAssembly();
|
||||
bool debuggerWasAttachedAtLineZero = Debugger.IsAttached || assembly.Location.Contains(@"\bin\Debug");
|
||||
IsEnvironment isEnvironment = new(processesCount: null, nullASPNetCoreEnvironmentIsDevelopment: debuggerWasAttachedAtLineZero, nullASPNetCoreEnvironmentIsProduction: !debuggerWasAttachedAtLineZero);
|
||||
_ = IsEnvironment.GetEnvironmentName(isEnvironment);
|
||||
}
|
||||
|
||||
}
|
54
mstest/AC_UnitTestExcelReader.cs
Normal file
54
mstest/AC_UnitTestExcelReader.cs
Normal file
@ -0,0 +1,54 @@
|
||||
using Mesa_Backlog.Library;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Serilog;
|
||||
using System.Reflection;
|
||||
|
||||
namespace Mesa_Backlog.MS_Test;
|
||||
|
||||
[TestClass]
|
||||
public class AC_UnitTestExcelReader
|
||||
{
|
||||
|
||||
private readonly ILogger _Logger;
|
||||
private readonly AppSettings _AppSettings;
|
||||
private readonly string _WorkingDirectory;
|
||||
private readonly IConfigurationRoot _ConfigurationRoot;
|
||||
|
||||
public AC_UnitTestExcelReader()
|
||||
{
|
||||
ILogger logger;
|
||||
AppSettings appSettings;
|
||||
string workingDirectory;
|
||||
IConfigurationRoot configurationRoot;
|
||||
LoggerConfiguration loggerConfiguration = new();
|
||||
Assembly assembly = Assembly.GetExecutingAssembly();
|
||||
IConfigurationBuilder configurationBuilder = new ConfigurationBuilder()
|
||||
.AddEnvironmentVariables()
|
||||
.AddJsonFile("appsettings.Development.json");
|
||||
configurationRoot = configurationBuilder.Build();
|
||||
appSettings = Library.Binder.AppSettings.Get(configurationRoot);
|
||||
workingDirectory = IWorkingDirectory.GetWorkingDirectory(assembly.GetName().Name, appSettings.WorkingDirectoryName);
|
||||
Environment.SetEnvironmentVariable(nameof(workingDirectory), workingDirectory);
|
||||
_ = ConfigurationLoggerConfigurationExtensions.Configuration(loggerConfiguration.ReadFrom, configurationRoot);
|
||||
Log.Logger = loggerConfiguration.CreateLogger();
|
||||
logger = Log.ForContext<AC_UnitTestExcelReader>();
|
||||
logger.Information("Complete");
|
||||
_Logger = logger;
|
||||
_AppSettings = appSettings;
|
||||
_WorkingDirectory = workingDirectory;
|
||||
_ConfigurationRoot = configurationRoot;
|
||||
}
|
||||
|
||||
[TestMethod, Ignore]
|
||||
public void TestMethodExcelReader()
|
||||
{
|
||||
Assert.IsFalse(_WorkingDirectory is null);
|
||||
Assert.IsFalse(_ConfigurationRoot is null);
|
||||
string json = ExcelReader.GetJson(_AppSettings.Excel.SourceFile, _AppSettings.Excel.Sheet);
|
||||
FIBacklogMesa[] fIBacklogMesaCollection = ExcelReader.GetFIBacklogMesaCollection(json);
|
||||
_Logger.Information(string.Concat(fIBacklogMesaCollection.Length, " row(s)"));
|
||||
json = ExcelReader.GetJson(fIBacklogMesaCollection);
|
||||
File.WriteAllText(_AppSettings.Excel.TargetFile, json);
|
||||
}
|
||||
|
||||
}
|
68
mstest/AD_UnitTestHttpClient.cs
Normal file
68
mstest/AD_UnitTestHttpClient.cs
Normal file
@ -0,0 +1,68 @@
|
||||
using Mesa_Backlog.Library;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Serilog;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using Http = System.Net.Http;
|
||||
|
||||
namespace Mesa_Backlog.MS_Test;
|
||||
|
||||
[TestClass]
|
||||
public class AD_UnitTestHttpClient
|
||||
{
|
||||
|
||||
private readonly ILogger _Logger;
|
||||
private readonly AppSettings _AppSettings;
|
||||
private readonly string _WorkingDirectory;
|
||||
private readonly IConfigurationRoot _ConfigurationRoot;
|
||||
private readonly Http.HttpClient _HttpClient;
|
||||
|
||||
public AD_UnitTestHttpClient()
|
||||
{
|
||||
ILogger logger;
|
||||
AppSettings appSettings;
|
||||
string workingDirectory;
|
||||
IConfigurationRoot configurationRoot;
|
||||
LoggerConfiguration loggerConfiguration = new();
|
||||
Assembly assembly = Assembly.GetExecutingAssembly();
|
||||
IConfigurationBuilder configurationBuilder = new ConfigurationBuilder()
|
||||
.AddEnvironmentVariables()
|
||||
.AddJsonFile("appsettings.Development.json");
|
||||
configurationRoot = configurationBuilder.Build();
|
||||
appSettings = Library.Binder.AppSettings.Get(configurationRoot);
|
||||
workingDirectory = IWorkingDirectory.GetWorkingDirectory(assembly.GetName().Name, appSettings.WorkingDirectoryName);
|
||||
Environment.SetEnvironmentVariable(nameof(workingDirectory), workingDirectory);
|
||||
_ = ConfigurationLoggerConfigurationExtensions.Configuration(loggerConfiguration.ReadFrom, configurationRoot);
|
||||
Log.Logger = loggerConfiguration.CreateLogger();
|
||||
logger = Log.ForContext<AD_UnitTestHttpClient>();
|
||||
logger.Information("Complete");
|
||||
_Logger = logger;
|
||||
_AppSettings = appSettings;
|
||||
_WorkingDirectory = workingDirectory;
|
||||
_ConfigurationRoot = configurationRoot;
|
||||
byte[] bytes = Encoding.ASCII.GetBytes($":{_AppSettings.Client.PAT}");
|
||||
string base64 = Convert.ToBase64String(bytes);
|
||||
_HttpClient = new() { BaseAddress = new(_AppSettings.Client.BaseAddress) };
|
||||
_HttpClient.DefaultRequestHeaders.Authorization = new("Basic", base64);
|
||||
MediaTypeWithQualityHeaderValue mediaTypeWithQualityHeaderValue = new("application/json");
|
||||
_HttpClient.DefaultRequestHeaders.Accept.Add(mediaTypeWithQualityHeaderValue);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TestMethodHttpClient()
|
||||
{
|
||||
Library.WorkItems.Root workItem;
|
||||
Assert.IsFalse(_WorkingDirectory is null);
|
||||
Assert.IsFalse(_ConfigurationRoot is null);
|
||||
Library.WIQL.WorkItem[] workItems = Library.HttpClient.GetWorkItems(_HttpClient, _AppSettings.Client.BasePage, _AppSettings.Client.API, _AppSettings.Client.Query);
|
||||
_Logger.Information(string.Concat(workItems, " item(s)"));
|
||||
for (int i = 0; i < workItems.Length; i++)
|
||||
{
|
||||
workItem = Library.HttpClient.GetWorkItem(_HttpClient, _AppSettings.Client.BasePage, _AppSettings.Client.API, workItems[i].Id);
|
||||
if (workItem is not null)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
70
mstest/AE_UnitTestWorkItemTrackingHttpClient.cs
Normal file
70
mstest/AE_UnitTestWorkItemTrackingHttpClient.cs
Normal file
@ -0,0 +1,70 @@
|
||||
using Mesa_Backlog.Library;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.VisualStudio.Services.Common;
|
||||
using Microsoft.VisualStudio.Services.WebApi;
|
||||
using Serilog;
|
||||
using System.Diagnostics;
|
||||
using System.Reflection;
|
||||
using WebApi = Microsoft.TeamFoundation.WorkItemTracking.WebApi;
|
||||
|
||||
namespace Mesa_Backlog.MS_Test;
|
||||
|
||||
[TestClass]
|
||||
public class AE_UnitTestWorkItemTrackingHttpClient
|
||||
{
|
||||
|
||||
private readonly ILogger _Logger;
|
||||
private readonly AppSettings _AppSettings;
|
||||
private readonly string _WorkingDirectory;
|
||||
private readonly IsEnvironment _IsEnvironment;
|
||||
private readonly IConfigurationRoot _ConfigurationRoot;
|
||||
private readonly WebApi.WorkItemTrackingHttpClient _WorkItemTrackingHttpClient;
|
||||
|
||||
public AE_UnitTestWorkItemTrackingHttpClient()
|
||||
{
|
||||
ILogger logger;
|
||||
AppSettings appSettings;
|
||||
string workingDirectory;
|
||||
IConfigurationRoot configurationRoot;
|
||||
LoggerConfiguration loggerConfiguration = new();
|
||||
Assembly assembly = Assembly.GetExecutingAssembly();
|
||||
bool debuggerWasAttachedAtLineZero = Debugger.IsAttached || assembly.Location.Contains(@"\bin\Debug");
|
||||
IsEnvironment isEnvironment = new(processesCount: null, nullASPNetCoreEnvironmentIsDevelopment: debuggerWasAttachedAtLineZero, nullASPNetCoreEnvironmentIsProduction: !debuggerWasAttachedAtLineZero);
|
||||
IConfigurationBuilder configurationBuilder = new ConfigurationBuilder()
|
||||
.AddEnvironmentVariables()
|
||||
.AddJsonFile(isEnvironment.AppSettingsFileName);
|
||||
configurationRoot = configurationBuilder.Build();
|
||||
appSettings = Library.Binder.AppSettings.Get(configurationRoot);
|
||||
workingDirectory = IWorkingDirectory.GetWorkingDirectory(assembly.GetName().Name, appSettings.WorkingDirectoryName);
|
||||
Environment.SetEnvironmentVariable(nameof(workingDirectory), workingDirectory);
|
||||
_ = ConfigurationLoggerConfigurationExtensions.Configuration(loggerConfiguration.ReadFrom, configurationRoot);
|
||||
Log.Logger = loggerConfiguration.CreateLogger();
|
||||
logger = Log.ForContext<AE_UnitTestWorkItemTrackingHttpClient>();
|
||||
logger.Information("Complete");
|
||||
_Logger = logger;
|
||||
_AppSettings = appSettings;
|
||||
_IsEnvironment = isEnvironment;
|
||||
_WorkingDirectory = workingDirectory;
|
||||
_ConfigurationRoot = configurationRoot;
|
||||
VssBasicCredential credential = new("", appSettings.Client.PAT);
|
||||
VssConnection connection = new(new(string.Concat(appSettings.Client.BaseAddress, appSettings.Client.BasePage)), credential);
|
||||
_WorkItemTrackingHttpClient = connection.GetClient<WebApi.WorkItemTrackingHttpClient>();
|
||||
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TestMethodWorkItemTrackingHttpClient()
|
||||
{
|
||||
Assert.IsFalse(_WorkingDirectory is null);
|
||||
Assert.IsFalse(_ConfigurationRoot is null);
|
||||
string json = "{\r\n \"Req \": \"642\",\r\n \"Submitted\": \"7/19/2022 12:00:00 AM\",\r\n \"Requestor\": \"Susan H\",\r\n \"Assigned To \": \"Jonathan\",\r\n \"Second Resource\": \"\",\r\n \"Title\": \"Reactor Log Form -\\u003E Reactor Item tracking validation is not catching everything. Allowing invalid reactor items to be tracked. Not requiring that a react item be created before being logged\",\r\n \"Epi Line\": \"\",\r\n \"Area\": \"\",\r\n \"System(s)\": \"OI\",\r\n \"Pri Sort\": \"0\",\r\n \"Priority\": \"BugFix\",\r\n \"Status\": \"Open\",\r\n \"Definition\": \"\",\r\n \"Updates\": \"7/21/22 - data entry/validation issue. Will be done in conjunction with Equip Maint web UI\\u003Cbr /\\u003E7/19/22 - Added by JRO\",\r\n \"Est Effort _(days)\": \"1\",\r\n \"Commit Date \": \"\",\r\n \"Re-Commit Date \": \"\",\r\n \"UAT as of \": \"\",\r\n \"CMPDate\": null,\r\n \"F20\": \"\",\r\n \"F21\": \"\",\r\n \"F22\": \"\",\r\n \"F23\": \"\",\r\n \"F24\": \"\",\r\n \"F25\": \"\",\r\n \"F26\": \"\",\r\n \"F27\": \"\",\r\n \"F28\": \"\",\r\n \"F29\": \"\",\r\n \"F30\": \"\",\r\n \"F31\": \"\",\r\n \"F32\": \"\",\r\n \"F33\": \"\"\r\n }";
|
||||
FIBacklogMesa? fIBacklogMesa = System.Text.Json.JsonSerializer.Deserialize<FIBacklogMesa>(json);
|
||||
Assert.IsNotNull(fIBacklogMesa);
|
||||
_Logger.Information(fIBacklogMesa.ToString());
|
||||
Task<WebApi.Models.WorkItem> workItemTask = WorkItemTrackingHttpClient.CreateWorkItem(_IsEnvironment.Development, _WorkItemTrackingHttpClient, _AppSettings.Client.Project, fIBacklogMesa);
|
||||
workItemTask.Wait();
|
||||
if (workItemTask.Result is null)
|
||||
throw new NullReferenceException(nameof(workItemTask.Result));
|
||||
}
|
||||
|
||||
}
|
47
mstest/Mesa-Backlog.Tests.csproj
Normal file
47
mstest/Mesa-Backlog.Tests.csproj
Normal file
@ -0,0 +1,47 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<IsPackable>false</IsPackable>
|
||||
<LangVersion>10.0</LangVersion>
|
||||
<Nullable>enable</Nullable>
|
||||
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<VSTestLogger>trx</VSTestLogger>
|
||||
<VSTestCollect>XPlat Code Coverage</VSTestCollect>
|
||||
<VSTestResultsDirectory>../.vscode/TestResults</VSTestResultsDirectory>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="2.2.8" />
|
||||
<PackageReference Include="coverlet.collector" Version="3.1.2" />
|
||||
<PackageReference Include="Serilog.Settings.Configuration" Version="3.3.0" />
|
||||
<PackageReference Include="Serilog.Sinks.Console" Version="4.0.1" />
|
||||
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
|
||||
<PackageReference Include="Serilog" Version="2.10.0" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\appsettings.json">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="..\appsettings.Staging.json">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="..\appsettings.Development.json">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="..\.vscode\Source\FI Backlog Mesa.xlsx">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="..\.vscode\Source\FI Backlog Mesa.json">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\classlib\Mesa-Backlog.Library.csproj" />
|
||||
</ItemGroup>
|
||||
</Project>
|
1
mstest/Usings.cs
Normal file
1
mstest/Usings.cs
Normal file
@ -0,0 +1 @@
|
||||
global using Microsoft.VisualStudio.TestTools.UnitTesting;
|
Reference in New Issue
Block a user