-
Notifications
You must be signed in to change notification settings - Fork 323
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a tool to migrate testsettings to runsettings #1600
Add a tool to migrate testsettings to runsettings #1600
Conversation
src/SettingsMigrator/Migrator.cs
Outdated
/// </summary> | ||
/// <param name="oldRunsettingsPath"></param> | ||
/// <param name="newRunsettingsPath"></param> | ||
public void MigrateRunsettings(string oldRunsettingsPath, string newRunsettingsPath) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: RunSettings*
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
src/SettingsMigrator/Migrator.cs
Outdated
/// <param name="testsettingsPath"></param> | ||
/// <param name="newRunsettingsPath"></param> | ||
/// <param name="oldRunSettingsContent"></param> | ||
public void MigrateTestsettings(string testsettingsPath, string newRunsettingsPath, string oldRunSettingsContent = null) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's refactor this to create file separately, and have a common api for translating testsettings xml to required runsettings xml
MigrateLegacyNodesToRunSettings
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
src/SettingsMigrator/Migrator.cs
Outdated
var executionNode = root.SelectSingleNode(@"/TestSettings/Execution"); | ||
|
||
string testTimeout = null; | ||
if (timeoutNode != null && timeoutNode.Attributes[TestTimeoutAttributeName] != null) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add warning for deployment and script timeout
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
src/SettingsMigrator/Migrator.cs
Outdated
if (deploymentNode != null || scriptnode != null || assemblyresolutionNode != null || | ||
!string.IsNullOrEmpty(parallelTestCount) || !string.IsNullOrEmpty(testTimeout) || hostsNode != null) | ||
{ | ||
AddLegacyNodes(deploymentNode, scriptnode, testTimeout, assemblyresolutionNode, hostsNode, parallelTestCount, newXmlDoc); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AddLegacyNodes [](start = 20, length = 14)
Create a class for all these nodes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
src/SettingsMigrator/Migrator.cs
Outdated
private void AddLegacyNodes(XmlNode deploymentNode, XmlNode scriptnode, string testTimeout, XmlNode assemblyresolutionNode, XmlNode hostsNode, string parallelTestCount, XmlDocument newXmlDoc) | ||
{ | ||
//Remove if the legacy node already exists. | ||
var legacyNode = newXmlDoc.DocumentElement.SelectSingleNode(@"/RunSettings/LegacySettings"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's put a warning for exist
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
src/SettingsMigrator/Migrator.cs
Outdated
} | ||
|
||
// Execution node. | ||
if (assemblyresolutionNode != null || !string.IsNullOrEmpty(parallelTestCount) || !string.IsNullOrEmpty(testTimeout) || hostsNode != null) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
assemblyresolutionNode [](start = 16, length = 22)
Nit: Resolution*
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
src/SettingsMigrator/Migrator.cs
Outdated
if (!string.IsNullOrEmpty(testTimeout)) | ||
{ | ||
var newTimeoutsNode = newXmlDoc.CreateNode(XmlNodeType.Element, TimeoutsNodeName, null); | ||
var testtimeoutattribute = newXmlDoc.CreateAttribute(TestTimeoutAttributeName); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
testtimeoutattribute [](start = 24, length = 20)
Nit: camelCase
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
src/SettingsMigrator/Migrator.cs
Outdated
var websettingsNode = root.SelectSingleNode(@"/TestSettings/Execution/TestTypeSpecific/WebTestRunConfiguration"); | ||
var oldDatacollectorNodes = root.SelectNodes(@"/TestSettings/AgentRule/DataCollectors/DataCollector"); | ||
var timeoutNode = root.SelectSingleNode(@"/TestSettings/Execution/Timeouts"); | ||
var assemblyresolutionNode = root.SelectSingleNode(@"/TestSettings/Execution/TestTypeSpecific/UnitTestRunConfig"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
assemblyresolutionNode [](start = 20, length = 22)
unitTestConfigNode
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
@@ -0,0 +1,123 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<root> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Designer needs to be fixed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
src/SettingsMigrator/Migrator.cs
Outdated
/// </summary> | ||
/// <param name="testSettingsPath"></param> | ||
/// <param name="newRunSettingsPath"></param> | ||
/// <param name="oldRunSettingsContent"></param> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This can be private.
Overall looks good. @smadala @mayankbansal018 Can you take a look? |
public class MigratorUnitTests | ||
{ | ||
[TestMethod] | ||
public void MigratorGeneratesCorrectRunsettingsForEmbeddedTestSettings() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add tests for negative cases as well.
Incorrect testsettings, incorrect path etc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
src/SettingsMigrator/Migrator.cs
Outdated
} | ||
|
||
|
||
public void MigrateTestSettings(string oldTestSettingsPath, string newRunSettingsPath) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit:Docs
src/SettingsMigrator/Migrator.cs
Outdated
// Copyright (c) Microsoft Corporation. All rights reserved. | ||
// Licensed under the MIT license. See LICENSE file in the project root for full license information. | ||
|
||
namespace Microsoft.VisualStudio.TestPlatform.CommandLine |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we rename Microsoft.VisualStudio.TestPlatform.SettingsMigrator?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
src/SettingsMigrator/Migrator.cs
Outdated
// Expand path relative to runSettings location. | ||
if (!Path.IsPathRooted(testSettingsPath)) | ||
{ | ||
testSettingsPath = Path.Combine(oldRunSettingsPath, testSettingsPath); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we combine with directory of oldRunSettingsPath
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add test for same.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
src/SettingsMigrator/Migrator.cs
Outdated
} | ||
else | ||
{ | ||
Console.WriteLine("RunSettings does not contain an embedded testSettings, not migrating."); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No need of localization?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
</data> | ||
<data name="ValidUsage" xml:space="preserve"> | ||
<value>Valid usage: SettingsMigrator.exe <Full path to testsettings file or runsettings file to be migrated> <Full path to new runsettings file> | ||
Example: SettingsMigrator.exe E:\MyTest\MyTestSettings.testsettings E:\MyTest\MyRunSettings.runsettings</value> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add runsettings example too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
"<TestTypeSpecific>" + | ||
"<UnitTestRunConfig testTypeId=\"13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b\">" + | ||
"<AssemblyResolution>" + | ||
"<TestDirectory useLoadContext=\"true\" />" + |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hosts.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
<PropertyGroup> | ||
<OutputType Condition=" '$(TargetFramework)' != 'net451' ">Exe</OutputType> | ||
<TargetFrameworks>net451</TargetFrameworks> | ||
<AssemblyName>SettingsMigrator.UnitTests</AssemblyName> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
<Import Project="$(TestPlatformRoot)scripts/build/TestPlatform.Settings.targets" /> | ||
<PropertyGroup> | ||
<OutputType Condition=" '$(TargetFramework)' != 'net451' ">Exe</OutputType> | ||
<TargetFrameworks>net451</TargetFrameworks> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This can be TargetFramework
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
"<AssemblyResolution>" + | ||
"<TestDirectory useLoadContext=\"true\" />" + | ||
"</AssemblyResolution>" + | ||
"</UnitTestRunConfig>" + |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add test for parallelTestCount.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
"</MSTest>" + | ||
"</RunSettings>"; | ||
|
||
const string OldTestSettings = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Create separate file for testsettings to runsettings .
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
src/SettingsMigrator/Migrator.cs
Outdated
} | ||
|
||
// Remove the embedded testSettings node if it exists. | ||
RemoveEmbeddedTestSettings(runSettingsXmlDoc); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove outside
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
src/SettingsMigrator/Migrator.cs
Outdated
{ | ||
var newExecutionNode = newXmlDoc.CreateNode(XmlNodeType.Element, ExecutionNodeName, null); | ||
|
||
if (string.IsNullOrEmpty(parallelTestCount)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
src/SettingsMigrator/Program.cs
Outdated
static void Main(string[] args) | ||
{ | ||
if (args.Length != 2) | ||
{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add tests for this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
src/SettingsMigrator/App.config
Outdated
<?xml version="1.0" encoding="utf-8" ?> | ||
<configuration> | ||
<startup> | ||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is .NETFramework,Version=v4.6.1
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
WE can remove app.config.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
src/SettingsMigrator/Migrator.cs
Outdated
} | ||
|
||
// LegacySettings node. | ||
if (testSettingsNodes.Deployment != null || testSettingsNodes.Script != null || testSettingsNodes.UnitTestConfig != null || |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Move if checks to inside function(AddLegacyNodes, AddRunTimeoutNode, AddDataCollectorNodes).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Move the long ones. Leaving the short ones since i find that more readable
if (testSettingsNodes.Timeout != null && (testSettingsNodes.Timeout.Attributes[AgentNotRespondingTimeoutAttribute] != null || | ||
testSettingsNodes.Timeout.Attributes[DeploymentTimeoutAttribute] != null || testSettingsNodes.Timeout.Attributes[ScriptTimeoutAttribute] != null)) | ||
{ | ||
Console.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.UnsupportedAttributes)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Put the errors and warning in red and yellow color.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Show the exact setting which is not supported.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Modify string.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not doing any color coding for now. Modified the string
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | ||
</resheader> | ||
<data name="IgnoringLegacySettings" xml:space="preserve"> | ||
<value>Any LegacySettings node already present in the runsettings will be removed.</value> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Make statement as removing. Show the content which is getting removed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not showing the content, We are specifying the node which is being removed
{ | ||
var testSettingsNodes = new TestSettingsNodes(); | ||
|
||
using (XmlTextReader reader = new XmlTextReader(testSettingsPath)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please share testsettings file with all possible configuration.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
<FromP2P>true</FromP2P> | ||
</ProjectReference> | ||
</ItemGroup> | ||
<ItemGroup Condition=" '$(TargetFramework)' == 'net451' "> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All these Reference
required?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
using Microsoft.VisualStudio.TestTools.UnitTesting; | ||
|
||
[TestClass] | ||
public class MigratorUnitTests |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: MigratorTests
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
[TestMethod] | ||
public void MigratorGeneratesCorrectRunsettingsForEmbeddedTestSettings() | ||
{ | ||
var migrator = new Migrator(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
DRY: line 17 to 23.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove to common coded as much as needed
|
||
using (XmlTextReader reader = new XmlTextReader(newRunsettingsPath)) | ||
{ | ||
reader.Namespaces = false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
DRY: Line number 36 to 64?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove to common coded as much as needed
src/SettingsMigrator/Migrator.cs
Outdated
"<RunSettings></RunSettings>"; | ||
const string AgentNotRespondingTimeoutAttribute = "agentNotRespondingTimeout"; | ||
const string DeploymentTimeoutAttribute = "deploymentTimeout"; | ||
const string ScriptTimeoutAttribute = "scriptTimeout"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
private?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
<Prefer32Bit Condition="'$(TargetFramework)' == 'net451'">true</Prefer32Bit> | ||
<ApplicationManifest>app.manifest</ApplicationManifest> | ||
</PropertyGroup> | ||
<PropertyGroup Condition="'$(TargetFramework)' != 'netcoreapp2.0'"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please remove this, since we are not building this for netcore
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
src/SettingsMigrator/Program.cs
Outdated
/// <summary> | ||
/// Entry point for SettingsMigrator. | ||
/// </summary> | ||
class Program |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please make it Public, if it doesn't contain code that needs to be tested, make it static as well
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
src/SettingsMigrator/App.config
Outdated
<?xml version="1.0" encoding="utf-8" ?> | ||
<configuration> | ||
<startup> | ||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
WE can remove app.config.
if (testSettingsNodes.Timeout != null && (testSettingsNodes.Timeout.Attributes[AgentNotRespondingTimeoutAttribute] != null || | ||
testSettingsNodes.Timeout.Attributes[DeploymentTimeoutAttribute] != null || testSettingsNodes.Timeout.Attributes[ScriptTimeoutAttribute] != null)) | ||
{ | ||
Console.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.UnsupportedAttributes)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Modify string.
src/SettingsMigrator/Program.cs
Outdated
|
||
string oldFilePath = args[0]; | ||
|
||
if (!Path.IsPathRooted(oldFilePath)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cltshivash Why should the path need to be rooted?
} | ||
|
||
/// <summary> | ||
/// Looks up a localized string similar to Valid usage: SettingsMigrator.exe <Full path to testsettings file or runsettings file to be migrated> <Full path to new runsettings file> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Update this help.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
using Microsoft.VisualStudio.TestTools.UnitTesting; | ||
|
||
[TestClass] | ||
public class MigratorUnitTests |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Change this to MigratorTests
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
<Content Include="oldRunSettingsWithDataCollector.runsettings" CopyToOutputDirectory="Always" /> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<Reference Include="System.Runtime" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These reference not required.?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
@@ -0,0 +1,6 @@ | |||
<RunSettings> | |||
<MSTest> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Keep embedded in file name.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
<DeploymentItem filename=".\test.txt" /> | ||
</Deployment> | ||
<Scripts setupScript=".\setup.bat" cleanupScript=".\cleanup.bat" /> | ||
<Execution parallelTestCount="2" hostProcessPlatform="MSIL"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why hostProcessPlatform
not migrating?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will be done separately
<Import Project="$(TestPlatformRoot)scripts/build/TestPlatform.Settings.targets" /> | ||
<PropertyGroup> | ||
<TargetFramework>net451</TargetFramework> | ||
<AssemblyName>SettingsMigrator.UnitTests</AssemblyName> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add code analysis.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
src/SettingsMigrator/Program.cs
Outdated
/// Main entry point. Hands off execution to Migrator. | ||
/// </summary> | ||
/// <param name="args">Arguments provided on the command line.</param> | ||
public static void Main(string[] args) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add tests for this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
Description
Adding a tool to migrate testsettings to runsettings