From c2900b510a4209a68c7f34c5184569e2c4cfed18 Mon Sep 17 00:00:00 2001 From: Arun Mahapatra Date: Wed, 12 Oct 2016 12:35:35 +0530 Subject: [PATCH 01/19] Use polling for socket receive message instead of timeouts. (#120) * Use polling for socket receive message instead of timeouts. In design mode client, wait for communication channel to be connected before sending version check. Fix #110. * Add test. --- .../DesignMode/DesignModeClient.cs | 26 ++- .../Messages/MessageType.cs | 1 - .../SocketCommunicationManager.cs | 22 ++- .../VsTestConsoleRequestSender.cs | 5 +- .../DesignMode/DesignModeClientTests.cs | 171 ++++++++---------- 5 files changed, 116 insertions(+), 109 deletions(-) diff --git a/src/Microsoft.TestPlatform.Client/DesignMode/DesignModeClient.cs b/src/Microsoft.TestPlatform.Client/DesignMode/DesignModeClient.cs index ef55f62e78..8f4183bee3 100644 --- a/src/Microsoft.TestPlatform.Client/DesignMode/DesignModeClient.cs +++ b/src/Microsoft.TestPlatform.Client/DesignMode/DesignModeClient.cs @@ -7,13 +7,11 @@ namespace Microsoft.VisualStudio.TestPlatform.Client.DesignMode using System.Threading; using System.Threading.Tasks; + using Microsoft.VisualStudio.TestPlatform.Client.RequestHelper; + using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities; using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.Interfaces; using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.ObjectModel; - using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities; - using Microsoft.VisualStudio.TestPlatform.Client.RequestHelper; - using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.Interfaces; using Microsoft.VisualStudio.TestPlatform.ObjectModel; - using System.Diagnostics; /// /// The design mode client. @@ -47,6 +45,9 @@ public DesignModeClient() /// /// The communication manager. /// + /// + /// The data Serializer. + /// internal DesignModeClient(ICommunicationManager communicationManager, IDataSerializer dataSerializer) { this.communicationManager = communicationManager; @@ -69,16 +70,21 @@ public static void Initialize() /// /// Creates a client and waits for server to accept connection asynchronously /// - /// port number to connect + /// + /// Port number to connect + /// + /// + /// The test Request Manager. + /// public void ConnectToClientAndProcessRequests(int port, ITestRequestManager testRequestManager) { EqtTrace.Info("Trying to connect to server on port : {0}", port); this.communicationManager.SetupClientAsync(port); - this.communicationManager.SendMessage(MessageType.SessionConnected); // Wait for the connection to the server and listen for requests. if (this.communicationManager.WaitForServerConnection(ClientListenTimeOut)) { + this.communicationManager.SendMessage(MessageType.SessionConnected); this.ProcessRequests(testRequestManager); } else @@ -99,7 +105,9 @@ public void HandleParentProcessExit() /// /// Process Requests from the IDE /// - /// + /// + /// The test Request Manager. + /// private void ProcessRequests(ITestRequestManager testRequestManager) { var isSessionEnd = false; @@ -202,7 +210,9 @@ private void ProcessRequests(ITestRequestManager testRequestManager) /// /// Send a custom host launch message to IDE /// - /// Payload required to launch a custom host + /// + /// The test Process Start Info. + /// public int LaunchCustomHost(TestProcessStartInfo testProcessStartInfo) { lock (ackLockObject) diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/Messages/MessageType.cs b/src/Microsoft.TestPlatform.CommunicationUtilities/Messages/MessageType.cs index a07b853e9b..4d699c0876 100644 --- a/src/Microsoft.TestPlatform.CommunicationUtilities/Messages/MessageType.cs +++ b/src/Microsoft.TestPlatform.CommunicationUtilities/Messages/MessageType.cs @@ -160,6 +160,5 @@ public static class MessageType public const string AfterTestRunEndResult = "DataCollection.AfterTestRunEndResult"; #endregion - } } diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/SocketCommunicationManager.cs b/src/Microsoft.TestPlatform.CommunicationUtilities/SocketCommunicationManager.cs index 4ce6135b01..6a51caad6d 100644 --- a/src/Microsoft.TestPlatform.CommunicationUtilities/SocketCommunicationManager.cs +++ b/src/Microsoft.TestPlatform.CommunicationUtilities/SocketCommunicationManager.cs @@ -64,12 +64,17 @@ public class SocketCommunicationManager : ICommunicationManager /// private NetworkStream stream; + private Socket socket; + /// - /// The server stream read timeout constant. + /// The server stream read timeout constant (in microseconds). /// - private const int StreamReadTimeout = 1000; + private const int StreamReadTimeout = 1000 * 1000; - public SocketCommunicationManager(): this(JsonDataSerializer.Instance) + /// + /// Initializes a new instance of the class. + /// + public SocketCommunicationManager() : this(JsonDataSerializer.Instance) { } @@ -107,6 +112,7 @@ public async Task AcceptClientAsync() this.clientConnectedEvent.Reset(); var client = await this.tcpListener.AcceptTcpClientAsync(); + this.socket = client.Client; this.stream = client.GetStream(); this.binaryReader = new BinaryReader(this.stream); this.binaryWriter = new BinaryWriter(this.stream); @@ -150,6 +156,7 @@ public async Task SetupClientAsync(int portNumber) this.clientConnectionAcceptedEvent.Reset(); EqtTrace.Info("Trying to connect to server on port : {0}", portNumber); this.tcpClient = new TcpClient(); + this.socket = this.tcpClient.Client; await this.tcpClient.ConnectAsync(IPAddress.Loopback, portNumber); this.stream = this.tcpClient.GetStream(); this.binaryReader = new BinaryReader(this.stream); @@ -292,13 +299,15 @@ private string TryReceiveRawMessage(CancellationToken cancellationToken) bool success = false; // Set read timeout to avoid blocking receive raw message - this.stream.ReadTimeout = StreamReadTimeout; while (!cancellationToken.IsCancellationRequested && !success) { try { - str = this.ReceiveRawMessage(); - success = true; + if (this.socket.Poll(StreamReadTimeout, SelectMode.SelectRead)) + { + str = this.ReceiveRawMessage(); + success = true; + } } catch (IOException ioException) { @@ -327,7 +336,6 @@ private string TryReceiveRawMessage(CancellationToken cancellationToken) } } - this.stream.ReadTimeout = -1; return str; } diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/VsTestConsoleRequestSender.cs b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/VsTestConsoleRequestSender.cs index 1cc27fe01f..ff415d638f 100644 --- a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/VsTestConsoleRequestSender.cs +++ b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/VsTestConsoleRequestSender.cs @@ -198,7 +198,7 @@ public void StartTestRunWithCustomHost( /// public void CancelTestRun() { - this.communicationManager.SendMessage(MessageType.CancelTestRun); + this.communicationManager.SendMessage(MessageType.CancelTestRun); } /// @@ -365,7 +365,7 @@ private void SendMessageAndListenAndReportTestResults(string messageType, object eventHandler.HandleLogMessage(TestMessageLevel.Error, Resources.AbortedTestsRun); var completeArgs = new TestRunCompleteEventArgs(null, false, true, exception, null, TimeSpan.Zero); eventHandler.HandleTestRunComplete(completeArgs, null, null, null); - CleanupCommunicationIfProcessExit(); + this.CleanupCommunicationIfProcessExit(); } } @@ -377,6 +377,7 @@ private void CleanupCommunicationIfProcessExit() this.communicationManager.StopServer(); } } + private Message TryReceiveMessage() { Message message = null; diff --git a/test/Microsoft.TestPlatform.Client.UnitTests/DesignMode/DesignModeClientTests.cs b/test/Microsoft.TestPlatform.Client.UnitTests/DesignMode/DesignModeClientTests.cs index b607e759ab..a5635d7686 100644 --- a/test/Microsoft.TestPlatform.Client.UnitTests/DesignMode/DesignModeClientTests.cs +++ b/test/Microsoft.TestPlatform.Client.UnitTests/DesignMode/DesignModeClientTests.cs @@ -1,33 +1,42 @@ // Copyright (c) Microsoft. All rights reserved. - namespace Microsoft.VisualStudio.TestPlatform.Client.UnitTests.DesignMode { using System; using System.Linq; using System.Threading; - using Microsoft.VisualStudio.TestPlatform.Common.Interfaces; - using Microsoft.VisualStudio.TestPlatform.Client.DesignMode; using Microsoft.VisualStudio.TestPlatform.Client.RequestHelper; + using Microsoft.VisualStudio.TestPlatform.Common.Interfaces; using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities; using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.Interfaces; using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.ObjectModel; using Microsoft.VisualStudio.TestPlatform.ObjectModel; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.Interfaces; using Microsoft.VisualStudio.TestTools.UnitTesting; using Moq; - using Newtonsoft.Json; using Newtonsoft.Json.Linq; - using ObjectModel.Client; - using ObjectModel.Engine; - using ObjectModel.Client.Interfaces; - [TestClass] public class DesignModeClientTests { + private const int PortNumber = 123; + + private readonly Mock mockTestRequestManager; + + private readonly Mock mockCommunicationManager; + + private readonly DesignModeClient designModeClient; + + public DesignModeClientTests() + { + this.mockTestRequestManager = new Mock(); + this.mockCommunicationManager = new Mock(); + this.designModeClient = new DesignModeClient(this.mockCommunicationManager.Object, JsonDataSerializer.Instance); + } + [TestMethod] public void DesignModeClientBeforeConnectInstanceShouldReturnNull() { @@ -44,84 +53,81 @@ public void DesignModeClientInitializeShouldInstantiateClassAndCreateClient() [TestMethod] public void DesignModeClientConnectShouldSetupChannel() { - int portNumber = 123; - var testRequestManager = new Mock(); - var communicationManager = new Mock(); - var testDesignModeClient = new DesignModeClient(communicationManager.Object, JsonDataSerializer.Instance); - - var verCheck = new Message() { MessageType = MessageType.VersionCheck }; - var sessionEnd = new Message() { MessageType = MessageType.SessionEnd }; - communicationManager.Setup(cm => cm.WaitForServerConnection(It.IsAny())).Returns(true); - communicationManager.Setup(cm => cm.ReceiveMessage()).Returns(verCheck); - - bool verCheckCalled = false; - communicationManager.Setup(cm => cm.SendMessage(MessageType.VersionCheck, It.IsAny())).Callback - (() => - { - verCheckCalled = true; - communicationManager.Setup(cm => cm.ReceiveMessage()).Returns(sessionEnd); - }); - - testDesignModeClient.ConnectToClientAndProcessRequests(portNumber, testRequestManager.Object); - - communicationManager.Verify(cm => cm.SetupClientAsync(portNumber), Times.Once); - communicationManager.Verify(cm => cm.WaitForServerConnection(It.IsAny()), Times.Once); - Assert.IsTrue(verCheckCalled, "Version Check must be called"); + var verCheck = new Message { MessageType = MessageType.VersionCheck }; + var sessionEnd = new Message { MessageType = MessageType.SessionEnd }; + this.mockCommunicationManager.Setup(cm => cm.WaitForServerConnection(It.IsAny())).Returns(true); + this.mockCommunicationManager.SetupSequence(cm => cm.ReceiveMessage()).Returns(verCheck).Returns(sessionEnd); + + this.designModeClient.ConnectToClientAndProcessRequests(PortNumber, this.mockTestRequestManager.Object); + + this.mockCommunicationManager.Verify(cm => cm.SetupClientAsync(PortNumber), Times.Once); + this.mockCommunicationManager.Verify(cm => cm.WaitForServerConnection(It.IsAny()), Times.Once); + this.mockCommunicationManager.Verify(cm => cm.SendMessage(MessageType.SessionConnected), Times.Once()); + this.mockCommunicationManager.Verify(cm => cm.SendMessage(MessageType.VersionCheck, It.IsAny()), Times.Once()); } [TestMethod] - public void DesignModeClientWithGetTestRunnerProcessStartInfoShouldDeserializeTestsWithTraitsCorrectly() + public void DesignModeClientConnectShouldNotSendConnectedIfServerConnectionTimesOut() { - // Arrange. - var mockTestRequestManager = new Mock(); - var mockCommunicationManager = new Mock(); + var verCheck = new Message { MessageType = MessageType.VersionCheck }; + var sessionEnd = new Message { MessageType = MessageType.SessionEnd }; + this.mockCommunicationManager.Setup(cm => cm.WaitForServerConnection(It.IsAny())).Returns(false); + this.mockCommunicationManager.SetupSequence(cm => cm.ReceiveMessage()).Returns(verCheck).Returns(sessionEnd); - var testDesignModeClient = new DesignModeClient(mockCommunicationManager.Object, JsonDataSerializer.Instance); + Assert.ThrowsException(() => this.designModeClient.ConnectToClientAndProcessRequests(PortNumber, this.mockTestRequestManager.Object)); + this.mockCommunicationManager.Verify(cm => cm.SetupClientAsync(PortNumber), Times.Once); + this.mockCommunicationManager.Verify(cm => cm.WaitForServerConnection(It.IsAny()), Times.Once); + this.mockCommunicationManager.Verify(cm => cm.SendMessage(MessageType.SessionConnected), Times.Never); + this.mockCommunicationManager.Verify(cm => cm.SendMessage(MessageType.VersionCheck, It.IsAny()), Times.Never); + } + + [TestMethod] + public void DesignModeClientWithGetTestRunnerProcessStartInfoShouldDeserializeTestsWithTraitsCorrectly() + { + // Arrange. var testCase = new TestCase("A.C.M", new Uri("d:\\executor"), "A.dll"); testCase.Traits.Add(new Trait("foo", "bar")); var testList = new System.Collections.Generic.List { testCase }; - var testRunPayload = new TestRunRequestPayload() { RunSettings = null, TestCases = testList }; + var testRunPayload = new TestRunRequestPayload { RunSettings = null, TestCases = testList }; - var getProcessStartInfoMessage = new Message() + var getProcessStartInfoMessage = new Message { - MessageType = - MessageType - .GetTestRunnerProcessStartInfoForRunSelected, + MessageType = MessageType.GetTestRunnerProcessStartInfoForRunSelected, Payload = JToken.FromObject("random") }; - var sessionEnd = new Message() { MessageType = MessageType.SessionEnd }; + var sessionEnd = new Message { MessageType = MessageType.SessionEnd }; TestRunRequestPayload receivedTestRunPayload = null; var allTasksComplete = new ManualResetEvent(false); // Setup mocks. - mockCommunicationManager.Setup(cm => cm.WaitForServerConnection(It.IsAny())).Returns(true); - mockCommunicationManager.Setup(cm => cm.DeserializePayload(getProcessStartInfoMessage)) + this.mockCommunicationManager.Setup(cm => cm.WaitForServerConnection(It.IsAny())).Returns(true); + this.mockCommunicationManager.Setup(cm => cm.DeserializePayload(getProcessStartInfoMessage)) .Returns(testRunPayload); - - mockTestRequestManager.Setup( - trm => - trm.RunTests( - It.IsAny(), - It.IsAny(), - It.IsAny())) + + this.mockTestRequestManager.Setup( + trm => + trm.RunTests( + It.IsAny(), + It.IsAny(), + It.IsAny())) .Callback( (TestRunRequestPayload trp, ITestHostLauncher testHostManager, ITestRunEventsRegistrar testRunEventsRegistrar) => - { + { allTasksComplete.Set(); receivedTestRunPayload = trp; }); - - mockCommunicationManager.SetupSequence(cm => cm.ReceiveMessage()) + + this.mockCommunicationManager.SetupSequence(cm => cm.ReceiveMessage()) .Returns(getProcessStartInfoMessage) .Returns(sessionEnd); // Act. - testDesignModeClient.ConnectToClientAndProcessRequests(0, mockTestRequestManager.Object); + this.designModeClient.ConnectToClientAndProcessRequests(0, this.mockTestRequestManager.Object); // wait for the internal spawned of tasks to complete. allTasksComplete.WaitOne(1000); @@ -141,33 +147,27 @@ public void DesignModeClientWithGetTestRunnerProcessStartInfoShouldDeserializeTe public void DesignModeClientWithRunSelectedTestCasesShouldDeserializeTestsWithTraitsCorrectly() { // Arrange. - var mockTestRequestManager = new Mock(); - var mockCommunicationManager = new Mock(); - - var testDesignModeClient = new DesignModeClient(mockCommunicationManager.Object, JsonDataSerializer.Instance); - var testCase = new TestCase("A.C.M", new Uri("d:\\executor"), "A.dll"); testCase.Traits.Add(new Trait("foo", "bar")); var testList = new System.Collections.Generic.List { testCase }; - var testRunPayload = new TestRunRequestPayload() { RunSettings = null, TestCases = testList }; + var testRunPayload = new TestRunRequestPayload { RunSettings = null, TestCases = testList }; - var getProcessStartInfoMessage = new Message() - { - MessageType = MessageType.TestRunSelectedTestCasesDefaultHost, - Payload = JToken.FromObject("random") - }; + var getProcessStartInfoMessage = new Message + { + MessageType = MessageType.TestRunSelectedTestCasesDefaultHost, + Payload = JToken.FromObject("random") + }; - var sessionEnd = new Message() { MessageType = MessageType.SessionEnd }; + var sessionEnd = new Message { MessageType = MessageType.SessionEnd }; TestRunRequestPayload receivedTestRunPayload = null; var allTasksComplete = new ManualResetEvent(false); // Setup mocks. - mockCommunicationManager.Setup(cm => cm.WaitForServerConnection(It.IsAny())).Returns(true); - mockCommunicationManager.Setup(cm => cm.DeserializePayload(getProcessStartInfoMessage)) + this.mockCommunicationManager.Setup(cm => cm.WaitForServerConnection(It.IsAny())).Returns(true); + this.mockCommunicationManager.Setup(cm => cm.DeserializePayload(getProcessStartInfoMessage)) .Returns(testRunPayload); - - mockTestRequestManager.Setup( + this.mockTestRequestManager.Setup( trm => trm.RunTests( It.IsAny(), @@ -181,13 +181,12 @@ public void DesignModeClientWithRunSelectedTestCasesShouldDeserializeTestsWithTr allTasksComplete.Set(); receivedTestRunPayload = trp; }); - - mockCommunicationManager.SetupSequence(cm => cm.ReceiveMessage()) + this.mockCommunicationManager.SetupSequence(cm => cm.ReceiveMessage()) .Returns(getProcessStartInfoMessage) .Returns(sessionEnd); // Act. - testDesignModeClient.ConnectToClientAndProcessRequests(0, mockTestRequestManager.Object); + this.designModeClient.ConnectToClientAndProcessRequests(0, this.mockTestRequestManager.Object); // wait for the internal spawned of tasks to complete. allTasksComplete.WaitOne(1000); @@ -206,31 +205,21 @@ public void DesignModeClientWithRunSelectedTestCasesShouldDeserializeTestsWithTr [TestMethod] public void DesignModeClientOnBadConnectionShouldStopServerAndThrowTimeoutException() { - int portNumber = 123; - var designModeHandler = new Mock(); - var communicationManager = new Mock(); - var testDesignModeClient = new DesignModeClient(communicationManager.Object, JsonDataSerializer.Instance); + this.mockCommunicationManager.Setup(cm => cm.WaitForServerConnection(It.IsAny())).Returns(false); - communicationManager.Setup(cm => cm.WaitForServerConnection(It.IsAny())).Returns(false); + Assert.ThrowsException(() => this.designModeClient.ConnectToClientAndProcessRequests(PortNumber, this.mockTestRequestManager.Object)); - Assert.ThrowsException(() => - testDesignModeClient.ConnectToClientAndProcessRequests(portNumber, designModeHandler.Object)); - - communicationManager.Verify(cm => cm.SetupClientAsync(portNumber), Times.Once); - communicationManager.Verify(cm => cm.WaitForServerConnection(It.IsAny()), Times.Once); - communicationManager.Verify(cm => cm.StopClient(), Times.Once); + this.mockCommunicationManager.Verify(cm => cm.SetupClientAsync(PortNumber), Times.Once); + this.mockCommunicationManager.Verify(cm => cm.WaitForServerConnection(It.IsAny()), Times.Once); + this.mockCommunicationManager.Verify(cm => cm.StopClient(), Times.Once); } [TestMethod] public void DesignModeClientShouldStopCommunicationOnParentProcessExit() { - var designModeHandler = new Mock(); - var communicationManager = new Mock(); - var testDesignModeClient = new DesignModeClient(communicationManager.Object, JsonDataSerializer.Instance); - - testDesignModeClient.HandleParentProcessExit(); + this.designModeClient.HandleParentProcessExit(); - communicationManager.Verify(cm => cm.StopClient(), Times.Once); + this.mockCommunicationManager.Verify(cm => cm.StopClient(), Times.Once); } } } From ce0eac2c9f60bf8194c33cf1aae4f4f44f899b61 Mon Sep 17 00:00:00 2001 From: sbaid Date: Wed, 12 Oct 2016 19:29:04 +0530 Subject: [PATCH 02/19] TestPlatform vsix display name & description change (#123) --- src/Microsoft.TestPlatform.VSIXCreator/extension.vsixmanifest | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.TestPlatform.VSIXCreator/extension.vsixmanifest b/src/Microsoft.TestPlatform.VSIXCreator/extension.vsixmanifest index 65595c299f..354064867a 100644 --- a/src/Microsoft.TestPlatform.VSIXCreator/extension.vsixmanifest +++ b/src/Microsoft.TestPlatform.VSIXCreator/extension.vsixmanifest @@ -1,8 +1,8 @@ - Microsoft.TestPlatform.V2 - TestPlatform V2 Package + Microsoft Visual Studio Test Platform + Extensible Test Platform that allows developers to discover, execute and analyze automated tests. From b7ca3df98fa2dbe93325673a268463addc6df1de Mon Sep 17 00:00:00 2001 From: Sai Krishna Vajjala Date: Thu, 13 Oct 2016 15:09:28 +0530 Subject: [PATCH 03/19] Create AppDomain at TestHost Start --- .../TestPlatform.cs | 4 +- .../Engine/ClientProtocol/ITestEngine.cs | 5 +- .../Execution/BaseRunTests.cs | 1 + .../Hosting/DefaultTestHostManager.cs | 18 +- .../TestEngine.cs | 8 +- src/testhost.x86/AppDomainEngineInvoker.cs | 264 ++++++++++++++++++ src/testhost.x86/DefaultEngineInvoker.cs | 109 ++++++++ src/testhost.x86/IEngineInvoker.cs | 19 ++ src/testhost.x86/Program.cs | 148 +++------- src/testhost.x86/project.json | 6 +- src/testhost/project.json | 11 +- .../TestPlatformTests.cs | 8 +- .../Hosting/DefaultTestHostManagerTests.cs | 5 +- .../TestEngineTests.cs | 13 +- 14 files changed, 492 insertions(+), 127 deletions(-) create mode 100644 src/testhost.x86/AppDomainEngineInvoker.cs create mode 100644 src/testhost.x86/DefaultEngineInvoker.cs create mode 100644 src/testhost.x86/IEngineInvoker.cs diff --git a/src/Microsoft.TestPlatform.Client/TestPlatform.cs b/src/Microsoft.TestPlatform.Client/TestPlatform.cs index 57292c5762..a720c93ba3 100644 --- a/src/Microsoft.TestPlatform.Client/TestPlatform.cs +++ b/src/Microsoft.TestPlatform.Client/TestPlatform.cs @@ -54,7 +54,7 @@ public IDiscoveryRequest CreateDiscoveryRequest(DiscoveryCriteria discoveryCrite } var runconfiguration = XmlRunSettingsUtilities.GetRunConfigurationNode(discoveryCriteria.RunSettings); - var testHostManager = this.TestEngine.GetDefaultTestHostManager(runconfiguration.TargetPlatform, runconfiguration.TargetFrameworkVersion); + var testHostManager = this.TestEngine.GetDefaultTestHostManager(runconfiguration); var discoveryManager = this.TestEngine.GetDiscoveryManager(testHostManager, discoveryCriteria); discoveryManager.Initialize(); @@ -76,7 +76,7 @@ public ITestRunRequest CreateTestRunRequest(TestRunCriteria testRunCriteria) } var runConfiguration = XmlRunSettingsUtilities.GetRunConfigurationNode(testRunCriteria.TestRunSettings); - var testHostManager = this.TestEngine.GetDefaultTestHostManager(runConfiguration.TargetPlatform, runConfiguration.TargetFrameworkVersion); + var testHostManager = this.TestEngine.GetDefaultTestHostManager(runConfiguration); if (testRunCriteria.TestHostLauncher != null) { diff --git a/src/Microsoft.TestPlatform.Common/Interfaces/Engine/ClientProtocol/ITestEngine.cs b/src/Microsoft.TestPlatform.Common/Interfaces/Engine/ClientProtocol/ITestEngine.cs index 4fab2d95f2..24728d4e4c 100644 --- a/src/Microsoft.TestPlatform.Common/Interfaces/Engine/ClientProtocol/ITestEngine.cs +++ b/src/Microsoft.TestPlatform.Common/Interfaces/Engine/ClientProtocol/ITestEngine.cs @@ -36,9 +36,8 @@ public interface ITestEngine /// Fetches the Test Host manager for this engine. This manager would provide extensibility /// features that this engine supports. /// - /// Architecture of the test run. - /// Runtime framework for this run. + /// RunConfiguration information which contains info like Architecture, Framework for the test run. /// Launcher for the test host process - ITestHostManager GetDefaultTestHostManager(Architecture architecture, Framework framework); + ITestHostManager GetDefaultTestHostManager(RunConfiguration runConfiguration); } } diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Execution/BaseRunTests.cs b/src/Microsoft.TestPlatform.CrossPlatEngine/Execution/BaseRunTests.cs index 893215107b..6eef0f1a80 100644 --- a/src/Microsoft.TestPlatform.CrossPlatEngine/Execution/BaseRunTests.cs +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Execution/BaseRunTests.cs @@ -26,6 +26,7 @@ namespace Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Execution using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing.Interfaces; using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.DataCollection; using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.EventHandlers; + using System.Linq; /// /// The base run tests. diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Hosting/DefaultTestHostManager.cs b/src/Microsoft.TestPlatform.CrossPlatEngine/Hosting/DefaultTestHostManager.cs index 9e5b229da0..7a6200bed4 100644 --- a/src/Microsoft.TestPlatform.CrossPlatEngine/Hosting/DefaultTestHostManager.cs +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Hosting/DefaultTestHostManager.cs @@ -40,8 +40,8 @@ public class DefaultTestHostManager : ITestHostManager /// /// Platform architecture of the host process. /// Runtime framework for the host process. - public DefaultTestHostManager(Architecture architecture, Framework framework) - : this(architecture, framework, new ProcessHelper()) + public DefaultTestHostManager(Architecture architecture, Framework framework, bool shared) + : this(architecture, framework, new ProcessHelper(), shared) { } @@ -51,16 +51,19 @@ public DefaultTestHostManager(Architecture architecture, Framework framework) /// Platform architecture of the host process. /// Runtime framework for the host process. /// Process helper instance. - internal DefaultTestHostManager(Architecture architecture, Framework framework, IProcessHelper processHelper) + /// Share the manager for multiple sources or not + internal DefaultTestHostManager(Architecture architecture, Framework framework, IProcessHelper processHelper, bool shared) { this.architecture = architecture; this.framework = framework; this.processHelper = processHelper; this.testHostProcess = null; + + this.Shared = shared; } /// - public bool Shared => true; + public bool Shared { get; private set; } /// /// Gets the properties of the test executor launcher. These could be the targetID for emulator/phone specific scenarios. @@ -116,6 +119,13 @@ public virtual TestProcessStartInfo GetTestHostProcessStartInfo( var currentWorkingDirectory = Path.GetDirectoryName(typeof(DefaultTestHostManager).GetTypeInfo().Assembly.Location); var argumentsString = " " + connectionInfo.ToCommandLineOptions(); + if (!this.Shared) + { + // Not sharing the host which means we need to pass the test assembly path as argument + // so that the test host can create an appdomain on startup (Main method) and set appbase + argumentsString += " " + "--testsourcepath " + "\"" + sources.FirstOrDefault() + "\""; + } + var testhostProcessPath = Path.Combine(currentWorkingDirectory, testHostProcessName); // For IDEs and other scenario, current directory should be the diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/TestEngine.cs b/src/Microsoft.TestPlatform.CrossPlatEngine/TestEngine.cs index e6b103a077..d2734f519b 100644 --- a/src/Microsoft.TestPlatform.CrossPlatEngine/TestEngine.cs +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/TestEngine.cs @@ -99,8 +99,10 @@ public ITestExtensionManager GetExtensionManager() /// The architecture we want the test host manager for. /// Framework for the test session. /// An instance of the test host manager. - public ITestHostManager GetDefaultTestHostManager(Architecture architecture, Framework framework) + public ITestHostManager GetDefaultTestHostManager(RunConfiguration runConfiguration) { + var framework = runConfiguration.TargetFrameworkVersion; + // This is expected to be called once every run so returning a new instance every time. if (framework.Name.IndexOf("netstandard", StringComparison.OrdinalIgnoreCase) >= 0 || framework.Name.IndexOf("netcoreapp", StringComparison.OrdinalIgnoreCase) >= 0) @@ -108,7 +110,9 @@ public ITestHostManager GetDefaultTestHostManager(Architecture architecture, Fra return new DotnetTestHostManager(); } - return new DefaultTestHostManager(architecture, framework); + // Only share the manager if DisableAppDomain is "false" + // meaning AppDomain is enabled and we can reuse the host for multiple sources + return new DefaultTestHostManager(runConfiguration.TargetPlatform, framework, shared: !runConfiguration.DisableAppDomain); } #endregion diff --git a/src/testhost.x86/AppDomainEngineInvoker.cs b/src/testhost.x86/AppDomainEngineInvoker.cs new file mode 100644 index 0000000000..c80b970a4f --- /dev/null +++ b/src/testhost.x86/AppDomainEngineInvoker.cs @@ -0,0 +1,264 @@ +namespace Microsoft.VisualStudio.TestPlatform.TestHost +{ +#if NET46 + using Microsoft.VisualStudio.TestPlatform.ObjectModel; + using System; + using System.IO; + using System.Linq; + using System.Reflection; + using System.Xml.Linq; + using System.Collections.Generic; + + /// + /// Implementation for the Invoker which invokes engine in a new AppDomain + /// Type of the engine must be a marshalable object for app domain calls and also must have a parameterless constructor + /// + internal class AppDomainEngineInvoker : IEngineInvoker where T : MarshalByRefObject, IEngineInvoker, new() + { + private const string XmlNamespace = "urn:schemas-microsoft-com:asm.v1"; + + private readonly string testSourcePath; + + public AppDomainEngineInvoker(string testSourcePath) + { + this.testSourcePath = testSourcePath; + } + + /// + /// Invokes the Engine with the arguments + /// + /// Arguments for the engine + public void Invoke(IDictionary argsDictionary) + { + string mergedTempConfigFile = null; + try + { + var invoker = CreateInvokerInAppDomain(typeof(T), testSourcePath, out mergedTempConfigFile); + invoker.Invoke(argsDictionary); + } + finally + { + try + { + if (mergedTempConfigFile != null && File.Exists(mergedTempConfigFile)) + { + File.Delete(mergedTempConfigFile); + } + } + catch + { + // ignore + } + } + } + + /// + /// Create the Engine Invoker in new AppDomain based on test source path + /// + /// Test Source to run/discover tests for + /// Merged config file if there is any merging of test config and test host config + /// + private static IEngineInvoker CreateInvokerInAppDomain(Type invokerType, string testSourcePath, out string mergedConfigFile) + { + var appDomainSetup = new AppDomainSetup(); + // Set AppBase to TestAssembly location + appDomainSetup.ApplicationBase = Path.GetDirectoryName(testSourcePath); + appDomainSetup.LoaderOptimization = LoaderOptimization.MultiDomainHost; + + // Set User Config file as app domain config + SetConfigurationFile(appDomainSetup, testSourcePath, out mergedConfigFile); + + // Create new AppDomain + var appDomain = AppDomain.CreateDomain("TestHostAppDomain", null, appDomainSetup); + + // Create Invoker object in new appdomain + return (IEngineInvoker)appDomain.CreateInstanceFromAndUnwrap( + invokerType.Assembly.Location, + invokerType.FullName, + false, + BindingFlags.Default, + null, + null, + null, + null); + } + + private static void SetConfigurationFile(AppDomainSetup appDomainSetup, string testSource, out string mergedConfigFile) + { + var configFile = GetConfigFile(testSource); + mergedConfigFile = null; + + if (!string.IsNullOrEmpty(configFile)) + { + // Merge user's config file and testHost config file and use merged one + mergedConfigFile = MergeApplicationConfigFiles(configFile, AppDomain.CurrentDomain.SetupInformation.ConfigurationFile); + + if (EqtTrace.IsInfoEnabled) + { + EqtTrace.Info("UnitTestAdapter: Using configuration file {0} for testSource {1}.", configFile, testSource); + } + appDomainSetup.ConfigurationFile = Path.GetFullPath(mergedConfigFile); + } + else + { + // Use the current domains configuration setting. + appDomainSetup.ConfigurationFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile; + } + } + + private static string GetConfigFile(string testSource) + { + string configFile = null; + + if (File.Exists(testSource + ".config")) + { + // Path to config file cannot be bad: storage is already checked, and extension is valid. + configFile = testSource + ".config"; + } + else + { + var netAppConfigFile = Path.Combine(Path.GetDirectoryName(testSource), "App.Config"); + if (File.Exists(netAppConfigFile)) + { + configFile = netAppConfigFile; + } + } + + return configFile; + } + + private static string MergeApplicationConfigFiles(string userConfigFile, string testHostConfigFile) + { + var userConfigDoc = XDocument.Load(userConfigFile); + var testHostConfigDoc = XDocument.Load(testHostConfigFile); + + // Start with User's config file as the base + var mergedDoc = new XDocument(userConfigDoc); + + // Take testhost.exe Startup node + var startupNode = testHostConfigDoc.Descendants("startup")?.FirstOrDefault(); + if (startupNode != null) + { + // Remove user's startup and add ours which supports NET35 + mergedDoc.Descendants("startup")?.Remove(); + mergedDoc.Root.Add(startupNode); + } + + // Runtime node must be merged which contains assembly redirections + var runtimeTestHostNode = testHostConfigDoc.Descendants("runtime")?.FirstOrDefault(); + if (runtimeTestHostNode != null) + { + // remove test host relative probing paths' element + // TestHost Probing Paths do not make sense since we are setting "AppBase" to user's test assembly location + runtimeTestHostNode.Descendants().Where((element) => string.Equals(element.Name.LocalName, "probing")).Remove(); + + var runTimeNode = mergedDoc.Descendants("runtime")?.FirstOrDefault(); + if (runTimeNode == null) + { + // no runtime node exists in user's config - just add ours entirely + mergedDoc.Root.Add(runtimeTestHostNode); + } + else + { + var assemblyBindingXName = XName.Get("assemblyBinding", XmlNamespace); + var mergedDocAssemblyBindingNode = mergedDoc.Descendants(assemblyBindingXName)?.FirstOrDefault(); + var testHostAssemblyBindingNode = runtimeTestHostNode.Descendants(assemblyBindingXName)?.FirstOrDefault(); + + if (testHostAssemblyBindingNode != null) + { + if (mergedDocAssemblyBindingNode == null) + { + // add another assemblyBinding element as none exists in user's config + runTimeNode.Add(testHostAssemblyBindingNode); + } + else + { + var dependentAssemblyXName = XName.Get("dependentAssembly", XmlNamespace); + var redirections = testHostAssemblyBindingNode.Descendants(dependentAssemblyXName); + + if (redirections != null) + { + mergedDocAssemblyBindingNode.Add(redirections); + } + } + } + } + } + + var tempFile = Path.GetTempFileName(); + mergedDoc.Save(tempFile); + + return tempFile; + } + } + + /// + /// Custom Assembly resolver for child app domain to resolve testplatform assemblies + /// + internal class CustomAssemblyResolver : MarshalByRefObject + { + private readonly IDictionary resolvedAssemblies; + + private readonly string[] resolverPaths; + + public CustomAssemblyResolver(string testPlatformPath) + { + this.resolverPaths = new string[] { testPlatformPath, Path.Combine(testPlatformPath, "Extensions") }; + this.resolvedAssemblies = new Dictionary(); + AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; + } + + private Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) + { + var assemblyName = new AssemblyName(args.Name); + + Assembly assembly = null; + lock (resolvedAssemblies) + { + try + { + EqtTrace.Verbose("CurrentDomain_AssemblyResolve: Resolving assembly '{0}'.", args.Name); + + if (resolvedAssemblies.TryGetValue(args.Name, out assembly)) + { + return assembly; + } + + // Put it in the resolved assembly so that if below Assembly.Load call + // triggers another assembly resolution, then we dont end up in stack overflow + resolvedAssemblies[args.Name] = null; + + foreach (var path in resolverPaths) + { + var testPlatformFilePath = Path.Combine(path, assemblyName.Name) + ".dll"; + if (File.Exists(testPlatformFilePath)) + { + try + { + assembly = Assembly.LoadFrom(testPlatformFilePath); + break; + } + catch (Exception) + { + // ignore + } + } + } + + // Replace the value with the loaded assembly + resolvedAssemblies[args.Name] = assembly; + + return assembly; + } + finally + { + if (null == assembly) + { + EqtTrace.Verbose("CurrentDomainAssemblyResolve: Failed to resolve assembly '{0}'.", args.Name); + } + } + } + } + } +#endif +} diff --git a/src/testhost.x86/DefaultEngineInvoker.cs b/src/testhost.x86/DefaultEngineInvoker.cs new file mode 100644 index 0000000000..48572253d5 --- /dev/null +++ b/src/testhost.x86/DefaultEngineInvoker.cs @@ -0,0 +1,109 @@ +namespace Microsoft.VisualStudio.TestPlatform.TestHost +{ + using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities; + using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.Interfaces; + using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing; + using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine; + using Microsoft.VisualStudio.TestPlatform.ObjectModel; + using System; + using System.Collections.Generic; + using System.Diagnostics; + + internal class DefaultEngineInvoker : +#if NET46 + MarshalByRefObject, +#endif + IEngineInvoker + { + /// + /// The timeout for the client to connect to the server. + /// + private const int ClientListenTimeOut = 5 * 1000; + + private const string PortLongname = "--port"; + + private const string PortShortname = "-p"; + + private const string ParentProcessIdLongname = "--parentprocessid"; + + private const string ParentProcessIdShortname = "-i"; + + public void Invoke(IDictionary argsDictionary) + { + TestPlatformEventSource.Instance.TestHostStart(); + var portNumber = GetIntArgFromDict(argsDictionary, PortLongname, PortShortname); + var requestHandler = new TestRequestHandler(); + requestHandler.InitializeCommunication(portNumber); + var parentProcessId = GetIntArgFromDict(argsDictionary, ParentProcessIdLongname, ParentProcessIdShortname); + OnParentProcessExit(parentProcessId, requestHandler); + + // setup the factory. + var managerFactory = new TestHostManagerFactory(); + + // Wait for the connection to the sender and start processing requests from sender + if (requestHandler.WaitForRequestSenderConnection(ClientListenTimeOut)) + { + requestHandler.ProcessRequests(managerFactory); + } + else + { + EqtTrace.Info("TestHost: RequestHandler timed out while connecting to the Sender."); + requestHandler.Close(); + throw new TimeoutException(); + } + + TestPlatformEventSource.Instance.TestHostStop(); + } + + /// + /// To parse int argument value. + /// + /// + /// Dictionary of all arguments Ex: { "--port":"12312", "--parentprocessid":"2312" } + /// + /// + /// The fullname for required argument. Ex: "--port" + /// + /// + /// The shortname for required argument. Ex: "-p" + /// + /// + /// The . + /// + /// + /// + private static int GetIntArgFromDict(IDictionary argsDictionary, string fullname, string shortname) + { + var val = -1; + if (argsDictionary.ContainsKey(fullname) && argsDictionary[fullname] != null) + { + int.TryParse(argsDictionary[fullname], out val); + } + else if (argsDictionary.ContainsKey(shortname) && argsDictionary[shortname] != null) + { + int.TryParse(argsDictionary[shortname], out val); + } + + if (val < 0) + { + throw new ArgumentException($"Incorrect/No number for: {fullname}/{shortname}"); + } + + return val; + } + + private static void OnParentProcessExit(int parentProcessId, ITestRequestHandler requestHandler) + { + EqtTrace.Info("TestHost: exits itself because parent process exited"); + var process = Process.GetProcessById(parentProcessId); + process.EnableRaisingEvents = true; + process.Exited += (sender, args) => + { + requestHandler?.Close(); + TestPlatformEventSource.Instance.TestHostStop(); + process.Dispose(); + Environment.Exit(0); + }; + } + } +} diff --git a/src/testhost.x86/IEngineInvoker.cs b/src/testhost.x86/IEngineInvoker.cs new file mode 100644 index 0000000000..45bb2a8716 --- /dev/null +++ b/src/testhost.x86/IEngineInvoker.cs @@ -0,0 +1,19 @@ +namespace Microsoft.VisualStudio.TestPlatform.TestHost +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Threading.Tasks; + + /// + /// Interface contract for invoking the engine + /// + public interface IEngineInvoker + { + /// + /// Invokes the Engine with the arguments + /// + /// Arguments for the engine + void Invoke(IDictionary argsDictionary); + } +} diff --git a/src/testhost.x86/Program.cs b/src/testhost.x86/Program.cs index 80879eb41e..3d1a1c4cd9 100644 --- a/src/testhost.x86/Program.cs +++ b/src/testhost.x86/Program.cs @@ -6,30 +6,16 @@ namespace Microsoft.VisualStudio.TestPlatform.TestHost using System.Collections.Generic; using System.Diagnostics; - using CrossPlatEngine; - - using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities; - using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing; using Microsoft.VisualStudio.TestPlatform.ObjectModel; using Microsoft.VisualStudio.TestPlatform.Utilities; - using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.Interfaces; - + using System.IO; /// /// The program. /// public class Program { - /// - /// The timeout for the client to connect to the server. - /// - private const int ClientListenTimeOut = 5 * 1000; - - private const string PortArgument = "--port"; - - private const string ParentProcessIdArgument = "--parentprocessid"; - - private const string LogFileArgument = "--diag"; + private const string TestSourceArgumentString = "--testsourcepath"; /// /// The main. @@ -41,8 +27,25 @@ public static void Main(string[] args) { try { - WaitForDebuggerIfEnabled(); - Run(args); + var debugEnabled = Environment.GetEnvironmentVariable("VSTEST_HOST_DEBUG"); + if (!string.IsNullOrEmpty(debugEnabled) && debugEnabled.Equals("1", StringComparison.Ordinal)) + { + ConsoleOutput.Instance.WriteLine("Waiting for debugger attach...", OutputLevel.Information); + + var currentProcess = Process.GetCurrentProcess(); + ConsoleOutput.Instance.WriteLine( + string.Format("Process Id: {0}, Name: {1}", currentProcess.Id, currentProcess.ProcessName), + OutputLevel.Information); + + while (!Debugger.IsAttached) + { + System.Threading.Thread.Sleep(1000); + } + + Debugger.Break(); + } + + RunArgs(args); } catch (Exception ex) { @@ -50,51 +53,41 @@ public static void Main(string[] args) } } - private static void Run(string[] args) + private static void RunArgs(string[] args) { - TestPlatformEventSource.Instance.TestHostStart(); - var argsDictionary = GetArguments(args); - var requestHandler = new TestRequestHandler(); + var argsDictionary = ParseArgsIntoDictionary(args); + IEngineInvoker invoker = null; - // Attach to exit of parent process - var parentProcessId = GetIntArgFromDict(argsDictionary, ParentProcessIdArgument); - OnParentProcessExit(parentProcessId, requestHandler); - - // Setup logging if enabled - string logFile; - if (argsDictionary.TryGetValue(LogFileArgument, out logFile)) +#if NET46 + // If Args contains test source argument, invoker Engine in new appdomain + if (argsDictionary.ContainsKey(TestSourceArgumentString)) { - EqtTrace.InitializeVerboseTrace(logFile); - } - - // Get port number and initialize communication - var portNumber = GetIntArgFromDict(argsDictionary, PortArgument); - requestHandler.InitializeCommunication(portNumber); + string testSourcePath = argsDictionary[TestSourceArgumentString]; - // Setup the factory - var managerFactory = new TestHostManagerFactory(); + // remove the test source arg from dictionary + argsDictionary.Remove(TestSourceArgumentString); - // Wait for the connection to the sender and start processing requests from sender - if (requestHandler.WaitForRequestSenderConnection(ClientListenTimeOut)) - { - requestHandler.ProcessRequests(managerFactory); - } - else - { - EqtTrace.Info("TestHost: RequestHandler timed out while connecting to the Sender."); - requestHandler.Close(); - throw new TimeoutException(); + // Only DLL and EXEs can have app.configs or ".exe.config" or ".dll.config" + if (File.Exists(testSourcePath) && (testSourcePath.EndsWith(".dll") || testSourcePath.EndsWith(".exe"))) + { + invoker = new AppDomainEngineInvoker(testSourcePath); + } } - - TestPlatformEventSource.Instance.TestHostStop(); +#endif + invoker = invoker ?? new DefaultEngineInvoker(); + invoker.Invoke(argsDictionary); } /// - /// Parse command line arguments to a dictionary. + /// The get args dictionary. /// - /// Command line arguments. Ex: { "--port", "12312", "--parentprocessid", "2312" } - /// Dictionary of arguments keys and values. - private static IDictionary GetArguments(string[] args) + /// + /// args Ex: { "--port", "12312", "--parentprocessid", "2312" } + /// + /// + /// The . + /// + private static IDictionary ParseArgsIntoDictionary(string[] args) { IDictionary argsDictionary = new Dictionary(); for (int i = 0; i < args.Length; i++) @@ -115,54 +108,5 @@ private static IDictionary GetArguments(string[] args) return argsDictionary; } - - /// - /// Parse the value of an argument as an integer. - /// - /// Dictionary of all arguments Ex: { "--port":"12312", "--parentprocessid":"2312" } - /// The full name for required argument. Ex: "--port" - /// Value of the argument. - /// Thrown if value of an argument is not an integer. - private static int GetIntArgFromDict(IDictionary argsDictionary, string fullname) - { - string optionValue; - return argsDictionary.TryGetValue(fullname, out optionValue) ? int.Parse(optionValue) : 0; - } - - - private static void OnParentProcessExit(int parentProcessId, ITestRequestHandler requestHandler) - { - EqtTrace.Info("TestHost: exits itself because parent process exited"); - var process = Process.GetProcessById(parentProcessId); - process.EnableRaisingEvents = true; - process.Exited += (sender, args) => - { - requestHandler?.Close(); - TestPlatformEventSource.Instance.TestHostStop(); - process.Dispose(); - Environment.Exit(0); - }; - } - - private static void WaitForDebuggerIfEnabled() - { - var debugEnabled = Environment.GetEnvironmentVariable("VSTEST_HOST_DEBUG"); - if (!string.IsNullOrEmpty(debugEnabled) && debugEnabled.Equals("1", StringComparison.Ordinal)) - { - ConsoleOutput.Instance.WriteLine("Waiting for debugger attach...", OutputLevel.Information); - - var currentProcess = System.Diagnostics.Process.GetCurrentProcess(); - ConsoleOutput.Instance.WriteLine( - string.Format("Process Id: {0}, Name: {1}", currentProcess.Id, currentProcess.ProcessName), - OutputLevel.Information); - - while (!System.Diagnostics.Debugger.IsAttached) - { - System.Threading.Thread.Sleep(1000); - } - - System.Diagnostics.Debugger.Break(); - } - } } } diff --git a/src/testhost.x86/project.json b/src/testhost.x86/project.json index fbff7354b3..4cf877bdbe 100644 --- a/src/testhost.x86/project.json +++ b/src/testhost.x86/project.json @@ -36,6 +36,10 @@ "System.ComponentModel.TypeConverter": "4.1.0" } }, - "net46": {} + "net46": { + "frameworkAssemblies": { + "System.Xml.Linq": "" + } + } } } diff --git a/src/testhost/project.json b/src/testhost/project.json index 934b996853..62faf8bc56 100644 --- a/src/testhost/project.json +++ b/src/testhost/project.json @@ -7,7 +7,10 @@ "keyFile": "../../scripts/key.snk", "warningsAsErrors": true, "compile": [ - "../testhost.x86/Program.cs" + "../testhost.x86/Program.cs", + "../testhost.x86/DefaultEngineInvoker.cs", + "../testhost.x86/IEngineInvoker.cs", + "../testhost.x86/AppDomainEngineInvoker.cs" ] }, @@ -39,6 +42,10 @@ "Microsoft.NETCore.Runtime.CoreCLR": "1.0.2" } }, - "net46": {} + "net46": { + "frameworkAssemblies": { + "System.Xml.Linq": "" + } + } } } diff --git a/test/Microsoft.TestPlatform.Client.UnitTests/TestPlatformTests.cs b/test/Microsoft.TestPlatform.Client.UnitTests/TestPlatformTests.cs index ac72e74cbf..21efd1bbb1 100644 --- a/test/Microsoft.TestPlatform.Client.UnitTests/TestPlatformTests.cs +++ b/test/Microsoft.TestPlatform.Client.UnitTests/TestPlatformTests.cs @@ -12,6 +12,8 @@ namespace Microsoft.VisualStudio.TestPlatform.Client.UnitTests using Microsoft.VisualStudio.TestTools.UnitTesting; using Moq; + using ObjectModel.Utilities; + using ObjectModel; [TestClass] public class TestPlatformTests @@ -34,7 +36,7 @@ public TestPlatformTests() [TestMethod] public void CreateDiscoveryRequestShouldCreateDiscoveryRequestWithGivenCriteriaAndReturnIt() { - this.testEngine.Setup(te => te.GetDefaultTestHostManager(ObjectModel.Architecture.X86, ObjectModel.Framework.DefaultFramework)).Returns(this.hostManager.Object); + this.testEngine.Setup(te => te.GetDefaultTestHostManager(It.IsAny())).Returns(this.hostManager.Object); this.discoveryManager.Setup(dm => dm.Initialize()).Verifiable(); this.testEngine.Setup(te => te.GetDiscoveryManager(this.hostManager.Object, It.IsAny())).Returns(this.discoveryManager.Object); this.testEngine.Setup(te => te.GetExtensionManager()).Returns(this.extensionManager.Object); @@ -69,7 +71,7 @@ public void UpdateExtensionsShouldUpdateTheEngineWithAdditionalExtensions() [TestMethod] public void CreateTestRunRequestShouldCreateTestRunRequestWithSpecifiedCriteria() { - this.testEngine.Setup(te => te.GetDefaultTestHostManager(ObjectModel.Architecture.X86, ObjectModel.Framework.DefaultFramework)).Returns(this.hostManager.Object); + this.testEngine.Setup(te => te.GetDefaultTestHostManager(It.IsAny())).Returns(this.hostManager.Object); this.executionManager.Setup(dm => dm.Initialize()).Verifiable(); this.testEngine.Setup(te => te.GetExecutionManager(this.hostManager.Object, It.IsAny())).Returns(this.executionManager.Object); this.testEngine.Setup(te => te.GetExtensionManager()).Returns(this.extensionManager.Object); @@ -86,7 +88,7 @@ public void CreateTestRunRequestShouldCreateTestRunRequestWithSpecifiedCriteria( public void CreateTestRunRequestShouldSetCustomHostLauncherOnEngineDefaultLauncherIfSpecified() { var mockCustomLauncher = new Mock(); - this.testEngine.Setup(te => te.GetDefaultTestHostManager(ObjectModel.Architecture.X86, ObjectModel.Framework.DefaultFramework)).Returns(this.hostManager.Object); + this.testEngine.Setup(te => te.GetDefaultTestHostManager(It.IsAny())).Returns(this.hostManager.Object); this.executionManager.Setup(dm => dm.Initialize()).Verifiable(); this.testEngine.Setup(te => te.GetExecutionManager(this.hostManager.Object, It.IsAny())).Returns(this.executionManager.Object); this.testEngine.Setup(te => te.GetExtensionManager()).Returns(this.extensionManager.Object); diff --git a/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Hosting/DefaultTestHostManagerTests.cs b/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Hosting/DefaultTestHostManagerTests.cs index 926da979b7..33d2d0d03d 100644 --- a/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Hosting/DefaultTestHostManagerTests.cs +++ b/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Hosting/DefaultTestHostManagerTests.cs @@ -15,6 +15,7 @@ namespace TestPlatform.CrossPlatEngine.UnitTests.Hosting using Microsoft.VisualStudio.TestTools.UnitTesting; using Moq; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Utilities; [TestClass] public class DefaultTestHostManagerTests @@ -28,14 +29,14 @@ public DefaultTestHostManagerTests() this.mockProcessHelper = new Mock(); this.mockProcessHelper.Setup(ph => ph.GetCurrentProcessFileName()).Returns("vstest.console.exe"); - this.testHostManager = new DefaultTestHostManager(Architecture.X64, Framework.DefaultFramework, this.mockProcessHelper.Object); + this.testHostManager = new DefaultTestHostManager(Architecture.X64, Framework.DefaultFramework, this.mockProcessHelper.Object, true); this.startInfo = this.testHostManager.GetTestHostProcessStartInfo(Enumerable.Empty(), null, default(TestRunnerConnectionInfo)); } [TestMethod] public void ConstructorShouldSetX86ProcessForX86Architecture() { - this.testHostManager = new DefaultTestHostManager(Architecture.X86, Framework.DefaultFramework, this.mockProcessHelper.Object); + this.testHostManager = new DefaultTestHostManager(Architecture.X86, Framework.DefaultFramework, this.mockProcessHelper.Object, true); var info = this.testHostManager.GetTestHostProcessStartInfo(Enumerable.Empty(), null, default(TestRunnerConnectionInfo)); diff --git a/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/TestEngineTests.cs b/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/TestEngineTests.cs index cf665cce73..fd95c9207c 100644 --- a/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/TestEngineTests.cs +++ b/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/TestEngineTests.cs @@ -135,14 +135,16 @@ public void GetExtensionManagerShouldReturnANonNullInstance() [TestMethod] public void GetDefaultTestHostManagerReturnsANonNullInstance() { - Assert.IsNotNull(this.testEngine.GetDefaultTestHostManager(Architecture.X86, Framework.DefaultFramework)); + var rc = new RunConfiguration() { TargetFrameworkVersion = Framework.DefaultFramework, TargetPlatform = Architecture.X86 }; + Assert.IsNotNull(this.testEngine.GetDefaultTestHostManager(rc)); } [TestMethod] public void GetDefaultTestHostManagerReturnsANewInstanceEverytime() { - var instance1 = this.testEngine.GetDefaultTestHostManager(Architecture.X86, Framework.DefaultFramework); - var instance2 = this.testEngine.GetDefaultTestHostManager(Architecture.X86, Framework.DefaultFramework); + var rc = new RunConfiguration() { TargetFrameworkVersion = Framework.DefaultFramework, TargetPlatform = Architecture.X86 }; + var instance1 = this.testEngine.GetDefaultTestHostManager(rc); + var instance2 = this.testEngine.GetDefaultTestHostManager(rc); Assert.AreNotEqual(instance1, instance2); } @@ -150,9 +152,8 @@ public void GetDefaultTestHostManagerReturnsANewInstanceEverytime() [TestMethod] public void GetDefaultTestHostManagerReturnsDotnetCoreHostManagerIfFrameworkIsNetCore() { - var testHostManager = this.testEngine.GetDefaultTestHostManager( - Architecture.X64, - Framework.FromString(".NETCoreApp,Version=v1.0")); + var rc = new RunConfiguration() { TargetFrameworkVersion = Framework.FromString(".NETCoreApp,Version=v1.0"), TargetPlatform = Architecture.X64 }; + var testHostManager = this.testEngine.GetDefaultTestHostManager(rc); Assert.AreEqual(typeof(DotnetTestHostManager), testHostManager.GetType()); } From 6f75f6274e20b1da21f410d3c40792c0e11eb799 Mon Sep 17 00:00:00 2001 From: Sai Krishna Vajjala Date: Thu, 13 Oct 2016 18:42:46 +0530 Subject: [PATCH 04/19] Fix for Nulls --- .../Client/Events/TestRunChangedEventArgs.cs | 5 +++-- .../Hosting/DefaultTestHostManagerTests.cs | 15 +++++++++++++ .../TestEngineTests.cs | 22 +++++++++++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.TestPlatform.ObjectModel/Client/Events/TestRunChangedEventArgs.cs b/src/Microsoft.TestPlatform.ObjectModel/Client/Events/TestRunChangedEventArgs.cs index 6991f6cacb..51d2c91ebf 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/Client/Events/TestRunChangedEventArgs.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/Client/Events/TestRunChangedEventArgs.cs @@ -5,6 +5,7 @@ namespace Microsoft.VisualStudio.TestPlatform.ObjectModel.Client using System; using System.Collections.Generic; using System.Runtime.Serialization; + using System.Linq; using Microsoft.VisualStudio.TestPlatform.ObjectModel; @@ -23,8 +24,8 @@ public class TestRunChangedEventArgs : EventArgs public TestRunChangedEventArgs(ITestRunStatistics stats, IEnumerable newTestResults, IEnumerable activeTests) { this.TestRunStatistics = stats; - this.NewTestResults = newTestResults; - this.ActiveTests = activeTests; + this.NewTestResults = newTestResults ?? Enumerable.Empty(); + this.ActiveTests = activeTests ?? Enumerable.Empty(); } /// diff --git a/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Hosting/DefaultTestHostManagerTests.cs b/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Hosting/DefaultTestHostManagerTests.cs index 33d2d0d03d..6887b7cf07 100644 --- a/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Hosting/DefaultTestHostManagerTests.cs +++ b/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Hosting/DefaultTestHostManagerTests.cs @@ -83,6 +83,21 @@ public void GetTestHostProcessStartInfoShouldIncludeCurrentWorkingDirectory() Assert.AreEqual(Directory.GetCurrentDirectory(), this.startInfo.WorkingDirectory); } + [TestMethod] + public void GetTestHostProcessStartInfoShouldIncludeTestSourcePathInArgumentsIfNonShared() + { + this.testHostManager = new DefaultTestHostManager(Architecture.X64, Framework.DefaultFramework, this.mockProcessHelper.Object, shared: false); + var connectionInfo = new TestRunnerConnectionInfo { Port = 123, RunnerProcessId = 101 }; + + var source = "C:\temp\a.dll"; + var info = this.testHostManager.GetTestHostProcessStartInfo( + new List() { source }, + null, + connectionInfo); + + Assert.AreEqual(" --port 123 --parentprocessid 101 --testsourcepath " + "\"" + source + "\"", info.Arguments); + } + [TestMethod] public void LaunchTestHostShouldReturnTestHostProcessId() { diff --git a/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/TestEngineTests.cs b/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/TestEngineTests.cs index fd95c9207c..73b1278ae9 100644 --- a/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/TestEngineTests.cs +++ b/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/TestEngineTests.cs @@ -157,5 +157,27 @@ public void GetDefaultTestHostManagerReturnsDotnetCoreHostManagerIfFrameworkIsNe Assert.AreEqual(typeof(DotnetTestHostManager), testHostManager.GetType()); } + + [TestMethod] + public void GetDefaultTestHostManagerReturnsASharedManagerIfDisableAppDomainIsFalse() + { + var rc = new RunConfiguration() { TargetFrameworkVersion = Framework.DefaultFramework, TargetPlatform = Architecture.X86 }; + + var testHostManager = this.testEngine.GetDefaultTestHostManager(rc); + Assert.IsNotNull(testHostManager); + + Assert.IsTrue(testHostManager.Shared, "Default TestHostManager must be shared if DisableAppDomain is false"); + } + + [TestMethod] + public void GetDefaultTestHostManagerReturnsANonSharedManagerIfDisableAppDomainIsFalse() + { + var rc = new RunConfiguration() { TargetFrameworkVersion = Framework.DefaultFramework, TargetPlatform = Architecture.X86, DisableAppDomain = true }; + + var testHostManager = this.testEngine.GetDefaultTestHostManager(rc); + Assert.IsNotNull(testHostManager); + + Assert.IsFalse(testHostManager.Shared, "Default TestHostManager must NOT be shared if DisableAppDomain is true"); + } } } From 19bd6116f0f5c07b91ce9d279359dcc751b57fbc Mon Sep 17 00:00:00 2001 From: Sai Krishna Vajjala Date: Thu, 13 Oct 2016 19:24:47 +0530 Subject: [PATCH 05/19] Minor namespace fixes --- .../Execution/BaseRunTests.cs | 1 - .../TestPlatformTests.cs | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Execution/BaseRunTests.cs b/src/Microsoft.TestPlatform.CrossPlatEngine/Execution/BaseRunTests.cs index 6eef0f1a80..893215107b 100644 --- a/src/Microsoft.TestPlatform.CrossPlatEngine/Execution/BaseRunTests.cs +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Execution/BaseRunTests.cs @@ -26,7 +26,6 @@ namespace Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Execution using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing.Interfaces; using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.DataCollection; using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.EventHandlers; - using System.Linq; /// /// The base run tests. diff --git a/test/Microsoft.TestPlatform.Client.UnitTests/TestPlatformTests.cs b/test/Microsoft.TestPlatform.Client.UnitTests/TestPlatformTests.cs index 21efd1bbb1..ead1d81eee 100644 --- a/test/Microsoft.TestPlatform.Client.UnitTests/TestPlatformTests.cs +++ b/test/Microsoft.TestPlatform.Client.UnitTests/TestPlatformTests.cs @@ -6,14 +6,13 @@ namespace Microsoft.VisualStudio.TestPlatform.Client.UnitTests using System.Collections.Generic; using Microsoft.VisualStudio.TestPlatform.Client.Execution; + using Microsoft.VisualStudio.TestPlatform.ObjectModel; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.Interfaces; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Engine; using Microsoft.VisualStudio.TestTools.UnitTesting; using Moq; - using ObjectModel.Utilities; - using ObjectModel; [TestClass] public class TestPlatformTests From 3f7f10b6f2cf54a26bec66a10448662ee1107670 Mon Sep 17 00:00:00 2001 From: Sai Krishna Vajjala Date: Thu, 13 Oct 2016 21:20:47 +0530 Subject: [PATCH 06/19] EqtTrace logs and comment fixes --- src/testhost.x86/AppDomainEngineInvoker.cs | 47 +++++++++++++--------- src/testhost.x86/DefaultEngineInvoker.cs | 20 +++------ src/testhost.x86/Program.cs | 10 ++--- 3 files changed, 37 insertions(+), 40 deletions(-) diff --git a/src/testhost.x86/AppDomainEngineInvoker.cs b/src/testhost.x86/AppDomainEngineInvoker.cs index c80b970a4f..1b369f79c1 100644 --- a/src/testhost.x86/AppDomainEngineInvoker.cs +++ b/src/testhost.x86/AppDomainEngineInvoker.cs @@ -33,7 +33,7 @@ public void Invoke(IDictionary argsDictionary) string mergedTempConfigFile = null; try { - var invoker = CreateInvokerInAppDomain(typeof(T), testSourcePath, out mergedTempConfigFile); + var invoker = CreateInvokerInAppDomain(testSourcePath, out mergedTempConfigFile); invoker.Invoke(argsDictionary); } finally @@ -45,9 +45,9 @@ public void Invoke(IDictionary argsDictionary) File.Delete(mergedTempConfigFile); } } - catch + catch (Exception ex) { - // ignore + EqtTrace.Error("AppDomainEngineInvoker: Error occured while trying to delete a temp file: {0}, Exception: {1}", mergedTempConfigFile, ex); } } } @@ -58,21 +58,28 @@ public void Invoke(IDictionary argsDictionary) /// Test Source to run/discover tests for /// Merged config file if there is any merging of test config and test host config /// - private static IEngineInvoker CreateInvokerInAppDomain(Type invokerType, string testSourcePath, out string mergedConfigFile) + private IEngineInvoker CreateInvokerInAppDomain(string testSourcePath, out string mergedConfigFile) { var appDomainSetup = new AppDomainSetup(); + + var testSourceFolder = Path.GetDirectoryName(testSourcePath); + EqtTrace.Info("AppDomainEngineInvoker: Creating new appdomain and Setting AppBase to: {0}", testSourceFolder); + // Set AppBase to TestAssembly location - appDomainSetup.ApplicationBase = Path.GetDirectoryName(testSourcePath); + appDomainSetup.ApplicationBase = testSourceFolder; appDomainSetup.LoaderOptimization = LoaderOptimization.MultiDomainHost; // Set User Config file as app domain config - SetConfigurationFile(appDomainSetup, testSourcePath, out mergedConfigFile); + SetConfigurationFile(appDomainSetup, testSourcePath, testSourceFolder, out mergedConfigFile); // Create new AppDomain var appDomain = AppDomain.CreateDomain("TestHostAppDomain", null, appDomainSetup); + var invokerType = typeof(T); + EqtTrace.Info("AppDomainEngineInvoker: Creating Invoker of type '{0}' in new AppDomain.", invokerType); + // Create Invoker object in new appdomain - return (IEngineInvoker)appDomain.CreateInstanceFromAndUnwrap( + return (IEngineInvoker) appDomain.CreateInstanceFromAndUnwrap( invokerType.Assembly.Location, invokerType.FullName, false, @@ -83,30 +90,34 @@ private static IEngineInvoker CreateInvokerInAppDomain(Type invokerType, string null); } - private static void SetConfigurationFile(AppDomainSetup appDomainSetup, string testSource, out string mergedConfigFile) + private static void SetConfigurationFile(AppDomainSetup appDomainSetup, string testSource, string testSourceFolder, out string mergedConfigFile) { - var configFile = GetConfigFile(testSource); + var configFile = GetConfigFile(testSource, testSourceFolder); + EqtTrace.Info("AppDomainEngineInvoker: User Configuration file '{0}' for testSource '{1}'", configFile, testSource); + mergedConfigFile = null; + var testHostAppConfigFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile; if (!string.IsNullOrEmpty(configFile)) { + EqtTrace.Info("AppDomainEngineInvoker: Merging test configuration file '{0}' and TestHost configuration file '{1}'", configFile, testHostAppConfigFile); + // Merge user's config file and testHost config file and use merged one - mergedConfigFile = MergeApplicationConfigFiles(configFile, AppDomain.CurrentDomain.SetupInformation.ConfigurationFile); + mergedConfigFile = MergeApplicationConfigFiles(configFile, testHostAppConfigFile); - if (EqtTrace.IsInfoEnabled) - { - EqtTrace.Info("UnitTestAdapter: Using configuration file {0} for testSource {1}.", configFile, testSource); - } - appDomainSetup.ConfigurationFile = Path.GetFullPath(mergedConfigFile); + EqtTrace.Info("AppDomainEngineInvoker: Using merged configuration file: {0}.", mergedConfigFile); + appDomainSetup.ConfigurationFile = mergedConfigFile; } else { + EqtTrace.Info("AppDomainEngineInvoker: No User configuration file found. Using TestHost Config File: {0}.", testHostAppConfigFile); + // Use the current domains configuration setting. - appDomainSetup.ConfigurationFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile; + appDomainSetup.ConfigurationFile = testHostAppConfigFile; } } - private static string GetConfigFile(string testSource) + private static string GetConfigFile(string testSource, string testSourceFolder) { string configFile = null; @@ -117,7 +128,7 @@ private static string GetConfigFile(string testSource) } else { - var netAppConfigFile = Path.Combine(Path.GetDirectoryName(testSource), "App.Config"); + var netAppConfigFile = Path.Combine(testSourceFolder, "App.Config"); if (File.Exists(netAppConfigFile)) { configFile = netAppConfigFile; diff --git a/src/testhost.x86/DefaultEngineInvoker.cs b/src/testhost.x86/DefaultEngineInvoker.cs index 48572253d5..2d75e359b4 100644 --- a/src/testhost.x86/DefaultEngineInvoker.cs +++ b/src/testhost.x86/DefaultEngineInvoker.cs @@ -56,22 +56,12 @@ public void Invoke(IDictionary argsDictionary) } /// - /// To parse int argument value. + /// Parse the value of an argument as an integer. /// - /// - /// Dictionary of all arguments Ex: { "--port":"12312", "--parentprocessid":"2312" } - /// - /// - /// The fullname for required argument. Ex: "--port" - /// - /// - /// The shortname for required argument. Ex: "-p" - /// - /// - /// The . - /// - /// - /// + /// Dictionary of all arguments Ex: { "--port":"12312", "--parentprocessid":"2312" } + /// The full name for required argument. Ex: "--port" + /// Value of the argument. + /// Thrown if value of an argument is not an integer. private static int GetIntArgFromDict(IDictionary argsDictionary, string fullname, string shortname) { var val = -1; diff --git a/src/testhost.x86/Program.cs b/src/testhost.x86/Program.cs index 3d1a1c4cd9..c2b888a2b0 100644 --- a/src/testhost.x86/Program.cs +++ b/src/testhost.x86/Program.cs @@ -79,14 +79,10 @@ private static void RunArgs(string[] args) } /// - /// The get args dictionary. + /// Parse command line arguments to a dictionary. /// - /// - /// args Ex: { "--port", "12312", "--parentprocessid", "2312" } - /// - /// - /// The . - /// + /// Command line arguments. Ex: { "--port", "12312", "--parentprocessid", "2312", "--testsourcepath", "C:\temp\1.dll" } + /// Dictionary of arguments keys and values. private static IDictionary ParseArgsIntoDictionary(string[] args) { IDictionary argsDictionary = new Dictionary(); From c36eb10f4b6152891045f36ae7103323c08c927b Mon Sep 17 00:00:00 2001 From: Sai Krishna Vajjala Date: Thu, 13 Oct 2016 21:27:37 +0530 Subject: [PATCH 07/19] Comment fixes --- src/testhost.x86/Program.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/testhost.x86/Program.cs b/src/testhost.x86/Program.cs index c2b888a2b0..10185591f3 100644 --- a/src/testhost.x86/Program.cs +++ b/src/testhost.x86/Program.cs @@ -60,10 +60,9 @@ private static void RunArgs(string[] args) #if NET46 // If Args contains test source argument, invoker Engine in new appdomain - if (argsDictionary.ContainsKey(TestSourceArgumentString)) + string testSourcePath; + if (argsDictionary.TryGetValue(TestSourceArgumentString, out testSourcePath) && !string.IsNullOrWhiteSpace(testSourcePath)) { - string testSourcePath = argsDictionary[TestSourceArgumentString]; - // remove the test source arg from dictionary argsDictionary.Remove(TestSourceArgumentString); From d425589c038b0843ca23f3927a734d40c920f2f3 Mon Sep 17 00:00:00 2001 From: Sai Krishna Vajjala Date: Thu, 13 Oct 2016 22:12:11 +0530 Subject: [PATCH 08/19] Fix Merge issues --- src/testhost.x86/AppDomainEngineInvoker.cs | 2 + src/testhost.x86/DefaultEngineInvoker.cs | 49 +++++++++---------- src/testhost.x86/Program.cs | 55 ++++++++++++---------- 3 files changed, 54 insertions(+), 52 deletions(-) diff --git a/src/testhost.x86/AppDomainEngineInvoker.cs b/src/testhost.x86/AppDomainEngineInvoker.cs index 1b369f79c1..2c4737076c 100644 --- a/src/testhost.x86/AppDomainEngineInvoker.cs +++ b/src/testhost.x86/AppDomainEngineInvoker.cs @@ -34,6 +34,8 @@ public void Invoke(IDictionary argsDictionary) try { var invoker = CreateInvokerInAppDomain(testSourcePath, out mergedTempConfigFile); + + EqtTrace.Info("AppDomainEngineInvoker: Invoking Actual Engine."); invoker.Invoke(argsDictionary); } finally diff --git a/src/testhost.x86/DefaultEngineInvoker.cs b/src/testhost.x86/DefaultEngineInvoker.cs index 2d75e359b4..932e615add 100644 --- a/src/testhost.x86/DefaultEngineInvoker.cs +++ b/src/testhost.x86/DefaultEngineInvoker.cs @@ -20,24 +20,33 @@ internal class DefaultEngineInvoker : /// private const int ClientListenTimeOut = 5 * 1000; - private const string PortLongname = "--port"; + private const string PortArgument = "--port"; - private const string PortShortname = "-p"; + private const string ParentProcessIdArgument = "--parentprocessid"; - private const string ParentProcessIdLongname = "--parentprocessid"; - - private const string ParentProcessIdShortname = "-i"; + private const string LogFileArgument = "--diag"; public void Invoke(IDictionary argsDictionary) { TestPlatformEventSource.Instance.TestHostStart(); - var portNumber = GetIntArgFromDict(argsDictionary, PortLongname, PortShortname); var requestHandler = new TestRequestHandler(); - requestHandler.InitializeCommunication(portNumber); - var parentProcessId = GetIntArgFromDict(argsDictionary, ParentProcessIdLongname, ParentProcessIdShortname); + + // Attach to exit of parent process + var parentProcessId = GetIntArgFromDict(argsDictionary, ParentProcessIdArgument); OnParentProcessExit(parentProcessId, requestHandler); - // setup the factory. + // Setup logging if enabled + string logFile; + if (argsDictionary.TryGetValue(LogFileArgument, out logFile)) + { + EqtTrace.InitializeVerboseTrace(logFile); + } + + // Get port number and initialize communication + var portNumber = GetIntArgFromDict(argsDictionary, PortArgument); + requestHandler.InitializeCommunication(portNumber); + + // Setup the factory var managerFactory = new TestHostManagerFactory(); // Wait for the connection to the sender and start processing requests from sender @@ -62,29 +71,15 @@ public void Invoke(IDictionary argsDictionary) /// The full name for required argument. Ex: "--port" /// Value of the argument. /// Thrown if value of an argument is not an integer. - private static int GetIntArgFromDict(IDictionary argsDictionary, string fullname, string shortname) + private static int GetIntArgFromDict(IDictionary argsDictionary, string fullname) { - var val = -1; - if (argsDictionary.ContainsKey(fullname) && argsDictionary[fullname] != null) - { - int.TryParse(argsDictionary[fullname], out val); - } - else if (argsDictionary.ContainsKey(shortname) && argsDictionary[shortname] != null) - { - int.TryParse(argsDictionary[shortname], out val); - } - - if (val < 0) - { - throw new ArgumentException($"Incorrect/No number for: {fullname}/{shortname}"); - } - - return val; + string optionValue; + return argsDictionary.TryGetValue(fullname, out optionValue) ? int.Parse(optionValue) : 0; } private static void OnParentProcessExit(int parentProcessId, ITestRequestHandler requestHandler) { - EqtTrace.Info("TestHost: exits itself because parent process exited"); + EqtTrace.Info("DefaultEngineInvoker: Exiting self because parent process exited"); var process = Process.GetProcessById(parentProcessId); process.EnableRaisingEvents = true; process.Exited += (sender, args) => diff --git a/src/testhost.x86/Program.cs b/src/testhost.x86/Program.cs index 10185591f3..10c671e3b5 100644 --- a/src/testhost.x86/Program.cs +++ b/src/testhost.x86/Program.cs @@ -8,7 +8,6 @@ namespace Microsoft.VisualStudio.TestPlatform.TestHost using Microsoft.VisualStudio.TestPlatform.ObjectModel; using Microsoft.VisualStudio.TestPlatform.Utilities; - using System.IO; /// /// The program. @@ -27,25 +26,8 @@ public static void Main(string[] args) { try { - var debugEnabled = Environment.GetEnvironmentVariable("VSTEST_HOST_DEBUG"); - if (!string.IsNullOrEmpty(debugEnabled) && debugEnabled.Equals("1", StringComparison.Ordinal)) - { - ConsoleOutput.Instance.WriteLine("Waiting for debugger attach...", OutputLevel.Information); - - var currentProcess = Process.GetCurrentProcess(); - ConsoleOutput.Instance.WriteLine( - string.Format("Process Id: {0}, Name: {1}", currentProcess.Id, currentProcess.ProcessName), - OutputLevel.Information); - - while (!Debugger.IsAttached) - { - System.Threading.Thread.Sleep(1000); - } - - Debugger.Break(); - } - - RunArgs(args); + WaitForDebuggerIfEnabled(); + Run(args); } catch (Exception ex) { @@ -53,9 +35,9 @@ public static void Main(string[] args) } } - private static void RunArgs(string[] args) + private static void Run(string[] args) { - var argsDictionary = ParseArgsIntoDictionary(args); + var argsDictionary = GetArguments(args); IEngineInvoker invoker = null; #if NET46 @@ -66,8 +48,10 @@ private static void RunArgs(string[] args) // remove the test source arg from dictionary argsDictionary.Remove(TestSourceArgumentString); - // Only DLL and EXEs can have app.configs or ".exe.config" or ".dll.config" - if (File.Exists(testSourcePath) && (testSourcePath.EndsWith(".dll") || testSourcePath.EndsWith(".exe"))) + // Only DLLs and EXEs can have app.configs or ".exe.config" or ".dll.config" + if (System.IO.File.Exists(testSourcePath) && + (testSourcePath.EndsWith(".dll", StringComparison.OrdinalIgnoreCase) + || testSourcePath.EndsWith(".exe", StringComparison.OrdinalIgnoreCase))) { invoker = new AppDomainEngineInvoker(testSourcePath); } @@ -82,7 +66,7 @@ private static void RunArgs(string[] args) /// /// Command line arguments. Ex: { "--port", "12312", "--parentprocessid", "2312", "--testsourcepath", "C:\temp\1.dll" } /// Dictionary of arguments keys and values. - private static IDictionary ParseArgsIntoDictionary(string[] args) + private static IDictionary GetArguments(string[] args) { IDictionary argsDictionary = new Dictionary(); for (int i = 0; i < args.Length; i++) @@ -103,5 +87,26 @@ private static IDictionary ParseArgsIntoDictionary(string[] args return argsDictionary; } + + private static void WaitForDebuggerIfEnabled() + { + var debugEnabled = Environment.GetEnvironmentVariable("VSTEST_HOST_DEBUG"); + if (!string.IsNullOrEmpty(debugEnabled) && debugEnabled.Equals("1", StringComparison.Ordinal)) + { + ConsoleOutput.Instance.WriteLine("Waiting for debugger attach...", OutputLevel.Information); + + var currentProcess = Process.GetCurrentProcess(); + ConsoleOutput.Instance.WriteLine( + string.Format("Process Id: {0}, Name: {1}", currentProcess.Id, currentProcess.ProcessName), + OutputLevel.Information); + + while (!Debugger.IsAttached) + { + System.Threading.Thread.Sleep(1000); + } + + Debugger.Break(); + } + } } } From f1ac4c2eb5d9bc508ef6af3ab511821e118ce98f Mon Sep 17 00:00:00 2001 From: Sai Krishna Vajjala Date: Thu, 13 Oct 2016 23:14:39 +0530 Subject: [PATCH 09/19] Adding CustomAssemblyResolver to new appdomain --- src/testhost.x86/AppDomainEngineInvoker.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/testhost.x86/AppDomainEngineInvoker.cs b/src/testhost.x86/AppDomainEngineInvoker.cs index 2c4737076c..af26eeb9d5 100644 --- a/src/testhost.x86/AppDomainEngineInvoker.cs +++ b/src/testhost.x86/AppDomainEngineInvoker.cs @@ -65,7 +65,7 @@ private IEngineInvoker CreateInvokerInAppDomain(string testSourcePath, out strin var appDomainSetup = new AppDomainSetup(); var testSourceFolder = Path.GetDirectoryName(testSourcePath); - EqtTrace.Info("AppDomainEngineInvoker: Creating new appdomain and Setting AppBase to: {0}", testSourceFolder); + EqtTrace.Info("AppDomainEngineInvoker: Using '{0}' as AppBase for new AppDomain.", testSourceFolder); // Set AppBase to TestAssembly location appDomainSetup.ApplicationBase = testSourceFolder; @@ -74,9 +74,21 @@ private IEngineInvoker CreateInvokerInAppDomain(string testSourcePath, out strin // Set User Config file as app domain config SetConfigurationFile(appDomainSetup, testSourcePath, testSourceFolder, out mergedConfigFile); + EqtTrace.Info("AppDomainEngineInvoker: Creating new appdomain"); // Create new AppDomain var appDomain = AppDomain.CreateDomain("TestHostAppDomain", null, appDomainSetup); + // Create Custom assembly resolver in new appdomain before anything else to resolve testplatform assemblies + appDomain.CreateInstanceFromAndUnwrap( + typeof(CustomAssemblyResolver).Assembly.Location, + typeof(CustomAssemblyResolver).FullName, + false, + BindingFlags.Default, + null, + new object[] { Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) }, + null, + null); + var invokerType = typeof(T); EqtTrace.Info("AppDomainEngineInvoker: Creating Invoker of type '{0}' in new AppDomain.", invokerType); From d4c3253e7ba8bba05768ce5c5df782df9763c036 Mon Sep 17 00:00:00 2001 From: Sai Krishna Vajjala Date: Fri, 14 Oct 2016 19:17:07 +0530 Subject: [PATCH 10/19] Add TestHost UnitTests --- TestPlatform.sln | 7 ++ .../Execution/BaseRunTests.cs | 4 +- .../Client/Events/TestRunChangedEventArgs.cs | 4 +- src/testhost.x86/AppDomainEngineInvoker.cs | 68 +++++++------ src/testhost.x86/DefaultEngineInvoker.cs | 98 ++++++++++++------- src/testhost.x86/Friends.cs | 13 +++ src/testhost.x86/IEngineInvoker.cs | 4 +- src/testhost.x86/Program.cs | 20 +++- src/testhost/project.json | 3 +- .../Execution/BaseRunTestsTests.cs | 2 +- .../TestEngineTests.cs | 4 +- .../AppDomainEngineInvokerTests.cs | 62 ++++++++++++ .../Properties/AssemblyInfo.cs | 19 ++++ test/testhost.UnitTests/project.json | 47 +++++++++ .../testhost.UnitTests.xproj | 19 ++++ 15 files changed, 289 insertions(+), 85 deletions(-) create mode 100644 src/testhost.x86/Friends.cs create mode 100644 test/testhost.UnitTests/AppDomainEngineInvokerTests.cs create mode 100644 test/testhost.UnitTests/Properties/AssemblyInfo.cs create mode 100644 test/testhost.UnitTests/project.json create mode 100644 test/testhost.UnitTests/testhost.UnitTests.xproj diff --git a/TestPlatform.sln b/TestPlatform.sln index f7bdfec47b..cf1c4e64e9 100644 --- a/TestPlatform.sln +++ b/TestPlatform.sln @@ -101,6 +101,8 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.TestPlatform.Perf EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.TestPlatform.Build", "src\Microsoft.TestPlatform.Build\Microsoft.TestPlatform.Build.xproj", "{03FC3BAA-417B-460B-B9EF-AB9A4D2A974A}" EndProject +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "testhost.UnitTests", "test\testhost.UnitTests\testhost.UnitTests.xproj", "{09599F77-A1F2-4366-BB8A-B4B90E05BCBC}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -247,6 +249,10 @@ Global {03FC3BAA-417B-460B-B9EF-AB9A4D2A974A}.Debug|Any CPU.Build.0 = Debug|Any CPU {03FC3BAA-417B-460B-B9EF-AB9A4D2A974A}.Release|Any CPU.ActiveCfg = Release|Any CPU {03FC3BAA-417B-460B-B9EF-AB9A4D2A974A}.Release|Any CPU.Build.0 = Release|Any CPU + {09599F77-A1F2-4366-BB8A-B4B90E05BCBC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {09599F77-A1F2-4366-BB8A-B4B90E05BCBC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {09599F77-A1F2-4366-BB8A-B4B90E05BCBC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {09599F77-A1F2-4366-BB8A-B4B90E05BCBC}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -292,5 +298,6 @@ Global {44DABCFB-7AA0-4682-B7F7-067E0ABA1D14} = {463031A2-7F16-4E38-9944-1F5161D04933} {12D59CED-9916-4C3F-AF82-12E019757FD2} = {44DABCFB-7AA0-4682-B7F7-067E0ABA1D14} {03FC3BAA-417B-460B-B9EF-AB9A4D2A974A} = {D8EF073C-279A-4279-912D-E9D4B0635E17} + {09599F77-A1F2-4366-BB8A-B4B90E05BCBC} = {463031A2-7F16-4E38-9944-1F5161D04933} EndGlobalSection EndGlobal diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Execution/BaseRunTests.cs b/src/Microsoft.TestPlatform.CrossPlatEngine/Execution/BaseRunTests.cs index 893215107b..f1cad63cf6 100644 --- a/src/Microsoft.TestPlatform.CrossPlatEngine/Execution/BaseRunTests.cs +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Execution/BaseRunTests.cs @@ -3,6 +3,7 @@ namespace Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Execution { using System; + using System.Linq; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; @@ -22,7 +23,6 @@ namespace Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Execution using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Utilities; - using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing; using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing.Interfaces; using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.DataCollection; using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.EventHandlers; @@ -436,7 +436,7 @@ private void RaiseTestRunComplete( attachments, elapsedTime); - var testRunChangedEventArgs = new TestRunChangedEventArgs(runStats, lastChunk, null); + var testRunChangedEventArgs = new TestRunChangedEventArgs(runStats, lastChunk, Enumerable.Empty()); this.testRunEventsHandler.HandleTestRunComplete( testRunCompleteEventArgs, diff --git a/src/Microsoft.TestPlatform.ObjectModel/Client/Events/TestRunChangedEventArgs.cs b/src/Microsoft.TestPlatform.ObjectModel/Client/Events/TestRunChangedEventArgs.cs index 51d2c91ebf..7b240e4b06 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/Client/Events/TestRunChangedEventArgs.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/Client/Events/TestRunChangedEventArgs.cs @@ -24,8 +24,8 @@ public class TestRunChangedEventArgs : EventArgs public TestRunChangedEventArgs(ITestRunStatistics stats, IEnumerable newTestResults, IEnumerable activeTests) { this.TestRunStatistics = stats; - this.NewTestResults = newTestResults ?? Enumerable.Empty(); - this.ActiveTests = activeTests ?? Enumerable.Empty(); + this.NewTestResults = newTestResults; + this.ActiveTests = activeTests; } /// diff --git a/src/testhost.x86/AppDomainEngineInvoker.cs b/src/testhost.x86/AppDomainEngineInvoker.cs index af26eeb9d5..dffc69b57c 100644 --- a/src/testhost.x86/AppDomainEngineInvoker.cs +++ b/src/testhost.x86/AppDomainEngineInvoker.cs @@ -1,4 +1,6 @@ -namespace Microsoft.VisualStudio.TestPlatform.TestHost +// Copyright (c) Microsoft. All rights reserved. + +namespace Microsoft.VisualStudio.TestPlatform.TestHost { #if NET46 using Microsoft.VisualStudio.TestPlatform.ObjectModel; @@ -17,11 +19,16 @@ { private const string XmlNamespace = "urn:schemas-microsoft-com:asm.v1"; - private readonly string testSourcePath; + protected readonly AppDomain appDomain; + + protected readonly IEngineInvoker actualInvoker; + + private readonly string mergedConfigFile = null; public AppDomainEngineInvoker(string testSourcePath) { - this.testSourcePath = testSourcePath; + this.appDomain = CreateNewAppDomain(testSourcePath, out mergedConfigFile); + this.actualInvoker = CreateInvokerInAppDomain(appDomain); } /// @@ -30,42 +37,35 @@ public AppDomainEngineInvoker(string testSourcePath) /// Arguments for the engine public void Invoke(IDictionary argsDictionary) { - string mergedTempConfigFile = null; try { - var invoker = CreateInvokerInAppDomain(testSourcePath, out mergedTempConfigFile); - - EqtTrace.Info("AppDomainEngineInvoker: Invoking Actual Engine."); - invoker.Invoke(argsDictionary); + this.actualInvoker.Invoke(argsDictionary); } finally { try { - if (mergedTempConfigFile != null && File.Exists(mergedTempConfigFile)) + if(appDomain != null) { - File.Delete(mergedTempConfigFile); + AppDomain.Unload(appDomain); + } + + if (this.mergedConfigFile != null && File.Exists(mergedConfigFile)) + { + File.Delete(mergedConfigFile); } } - catch (Exception ex) + catch { - EqtTrace.Error("AppDomainEngineInvoker: Error occured while trying to delete a temp file: {0}, Exception: {1}", mergedTempConfigFile, ex); + // ignore } } } - /// - /// Create the Engine Invoker in new AppDomain based on test source path - /// - /// Test Source to run/discover tests for - /// Merged config file if there is any merging of test config and test host config - /// - private IEngineInvoker CreateInvokerInAppDomain(string testSourcePath, out string mergedConfigFile) + private AppDomain CreateNewAppDomain(string testSourcePath, out string mergedConfigFile) { var appDomainSetup = new AppDomainSetup(); - var testSourceFolder = Path.GetDirectoryName(testSourcePath); - EqtTrace.Info("AppDomainEngineInvoker: Using '{0}' as AppBase for new AppDomain.", testSourceFolder); // Set AppBase to TestAssembly location appDomainSetup.ApplicationBase = testSourceFolder; @@ -74,10 +74,18 @@ private IEngineInvoker CreateInvokerInAppDomain(string testSourcePath, out strin // Set User Config file as app domain config SetConfigurationFile(appDomainSetup, testSourcePath, testSourceFolder, out mergedConfigFile); - EqtTrace.Info("AppDomainEngineInvoker: Creating new appdomain"); // Create new AppDomain - var appDomain = AppDomain.CreateDomain("TestHostAppDomain", null, appDomainSetup); + return AppDomain.CreateDomain("TestHostAppDomain", null, appDomainSetup); + } + /// + /// Create the Engine Invoker in new AppDomain based on test source path + /// + /// Test Source to run/discover tests for + /// Merged config file if there is any merging of test config and test host config + /// + private IEngineInvoker CreateInvokerInAppDomain(AppDomain appDomain) + { // Create Custom assembly resolver in new appdomain before anything else to resolve testplatform assemblies appDomain.CreateInstanceFromAndUnwrap( typeof(CustomAssemblyResolver).Assembly.Location, @@ -89,10 +97,8 @@ private IEngineInvoker CreateInvokerInAppDomain(string testSourcePath, out strin null, null); - var invokerType = typeof(T); - EqtTrace.Info("AppDomainEngineInvoker: Creating Invoker of type '{0}' in new AppDomain.", invokerType); - // Create Invoker object in new appdomain + var invokerType = typeof(T); return (IEngineInvoker) appDomain.CreateInstanceFromAndUnwrap( invokerType.Assembly.Location, invokerType.FullName, @@ -107,25 +113,17 @@ private IEngineInvoker CreateInvokerInAppDomain(string testSourcePath, out strin private static void SetConfigurationFile(AppDomainSetup appDomainSetup, string testSource, string testSourceFolder, out string mergedConfigFile) { var configFile = GetConfigFile(testSource, testSourceFolder); - EqtTrace.Info("AppDomainEngineInvoker: User Configuration file '{0}' for testSource '{1}'", configFile, testSource); - mergedConfigFile = null; var testHostAppConfigFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile; if (!string.IsNullOrEmpty(configFile)) { - EqtTrace.Info("AppDomainEngineInvoker: Merging test configuration file '{0}' and TestHost configuration file '{1}'", configFile, testHostAppConfigFile); - // Merge user's config file and testHost config file and use merged one mergedConfigFile = MergeApplicationConfigFiles(configFile, testHostAppConfigFile); - - EqtTrace.Info("AppDomainEngineInvoker: Using merged configuration file: {0}.", mergedConfigFile); appDomainSetup.ConfigurationFile = mergedConfigFile; } else { - EqtTrace.Info("AppDomainEngineInvoker: No User configuration file found. Using TestHost Config File: {0}.", testHostAppConfigFile); - // Use the current domains configuration setting. appDomainSetup.ConfigurationFile = testHostAppConfigFile; } @@ -152,7 +150,7 @@ private static string GetConfigFile(string testSource, string testSourceFolder) return configFile; } - private static string MergeApplicationConfigFiles(string userConfigFile, string testHostConfigFile) + protected static string MergeApplicationConfigFiles(string userConfigFile, string testHostConfigFile) { var userConfigDoc = XDocument.Load(userConfigFile); var testHostConfigDoc = XDocument.Load(testHostConfigFile); diff --git a/src/testhost.x86/DefaultEngineInvoker.cs b/src/testhost.x86/DefaultEngineInvoker.cs index 932e615add..ca6a14baba 100644 --- a/src/testhost.x86/DefaultEngineInvoker.cs +++ b/src/testhost.x86/DefaultEngineInvoker.cs @@ -1,13 +1,18 @@ -namespace Microsoft.VisualStudio.TestPlatform.TestHost +// Copyright (c) Microsoft. All rights reserved. + +namespace Microsoft.VisualStudio.TestPlatform.TestHost { using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities; using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.Interfaces; - using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing; using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine; using Microsoft.VisualStudio.TestPlatform.ObjectModel; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Engine.TesthostProtocol; + using System; using System.Collections.Generic; using System.Diagnostics; + using System.Threading; + using System.Threading.Tasks; internal class DefaultEngineInvoker : #if NET46 @@ -28,13 +33,6 @@ internal class DefaultEngineInvoker : public void Invoke(IDictionary argsDictionary) { - TestPlatformEventSource.Instance.TestHostStart(); - var requestHandler = new TestRequestHandler(); - - // Attach to exit of parent process - var parentProcessId = GetIntArgFromDict(argsDictionary, ParentProcessIdArgument); - OnParentProcessExit(parentProcessId, requestHandler); - // Setup logging if enabled string logFile; if (argsDictionary.TryGetValue(LogFileArgument, out logFile)) @@ -42,26 +40,68 @@ public void Invoke(IDictionary argsDictionary) EqtTrace.InitializeVerboseTrace(logFile); } +#if NET46 + if (EqtTrace.IsInfoEnabled) + { + var appConfigText = System.IO.File.ReadAllText(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile); + EqtTrace.Info("DefaultEngineInvoker: Using Application Configuration: '{0}'", appConfigText); + } +#endif + // Get port number and initialize communication var portNumber = GetIntArgFromDict(argsDictionary, PortArgument); - requestHandler.InitializeCommunication(portNumber); - // Setup the factory - var managerFactory = new TestHostManagerFactory(); - - // Wait for the connection to the sender and start processing requests from sender - if (requestHandler.WaitForRequestSenderConnection(ClientListenTimeOut)) + // Start Processing of requests + using (var requestHandler = new TestRequestHandler()) { - requestHandler.ProcessRequests(managerFactory); + // Attach to exit of parent process + var parentProcessId = GetIntArgFromDict(argsDictionary, ParentProcessIdArgument); + EqtTrace.Info("DefaultEngineInvoker: Monitoring parent process with id: '{0}'", parentProcessId); + var parentProcessMonitoringTask = WaitForParentProcessExitAsync(parentProcessId); + + // Initialize Communication + EqtTrace.Info("DefaultEngineInvoker: Initialize communication on port number: '{0}'", portNumber); + requestHandler.InitializeCommunication(portNumber); + + // Start processing async in a different task + EqtTrace.Info("DefaultEngineInvoker: Start Request Processing."); + var processingTask = StartProcessingAsync(requestHandler, new TestHostManagerFactory()); + + // Wait for either processing to complete or parent process exit + Task.WaitAny(processingTask, parentProcessMonitoringTask); } - else + } + + private Task StartProcessingAsync(ITestRequestHandler requestHandler, ITestHostManagerFactory managerFactory) + { + return Task.Run(() => { - EqtTrace.Info("TestHost: RequestHandler timed out while connecting to the Sender."); - requestHandler.Close(); - throw new TimeoutException(); - } + // Wait for the connection to the sender and start processing requests from sender + if (requestHandler.WaitForRequestSenderConnection(ClientListenTimeOut)) + { + requestHandler.ProcessRequests(managerFactory); + } + else + { + EqtTrace.Info("DefaultEngineInvoker: RequestHandler timed out while connecting to the Sender."); + throw new TimeoutException(); + } + }); + } + + private static Task WaitForParentProcessExitAsync(int parentProcessId) + { + var parentProcessExitedHandle = new AutoResetEvent(false); + var process = Process.GetProcessById(parentProcessId); + + process.EnableRaisingEvents = true; + process.Exited += (sender, args) => + { + EqtTrace.Info("DefaultEngineInvoker: ParentProcess '{0}' Exited.", parentProcessId); + parentProcessExitedHandle.Set(); + }; - TestPlatformEventSource.Instance.TestHostStop(); + return Task.Run(() => parentProcessExitedHandle.WaitOne()); } /// @@ -76,19 +116,5 @@ private static int GetIntArgFromDict(IDictionary argsDictionary, string optionValue; return argsDictionary.TryGetValue(fullname, out optionValue) ? int.Parse(optionValue) : 0; } - - private static void OnParentProcessExit(int parentProcessId, ITestRequestHandler requestHandler) - { - EqtTrace.Info("DefaultEngineInvoker: Exiting self because parent process exited"); - var process = Process.GetProcessById(parentProcessId); - process.EnableRaisingEvents = true; - process.Exited += (sender, args) => - { - requestHandler?.Close(); - TestPlatformEventSource.Instance.TestHostStop(); - process.Dispose(); - Environment.Exit(0); - }; - } } } diff --git a/src/testhost.x86/Friends.cs b/src/testhost.x86/Friends.cs new file mode 100644 index 0000000000..55e90bd38e --- /dev/null +++ b/src/testhost.x86/Friends.cs @@ -0,0 +1,13 @@ +// Copyright (c) Microsoft. All rights reserved. + +using System.Runtime.CompilerServices; + +#region Product Assemblies + +#endregion + +#region Test Assemblies + +[assembly: InternalsVisibleTo("testhost.UnitTests, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293")] + +#endregion diff --git a/src/testhost.x86/IEngineInvoker.cs b/src/testhost.x86/IEngineInvoker.cs index 45bb2a8716..ec0ae8db5a 100644 --- a/src/testhost.x86/IEngineInvoker.cs +++ b/src/testhost.x86/IEngineInvoker.cs @@ -1,4 +1,6 @@ -namespace Microsoft.VisualStudio.TestPlatform.TestHost +// Copyright (c) Microsoft. All rights reserved. + +namespace Microsoft.VisualStudio.TestPlatform.TestHost { using System; using System.Collections.Generic; diff --git a/src/testhost.x86/Program.cs b/src/testhost.x86/Program.cs index 10c671e3b5..b3388f6afb 100644 --- a/src/testhost.x86/Program.cs +++ b/src/testhost.x86/Program.cs @@ -8,6 +8,7 @@ namespace Microsoft.VisualStudio.TestPlatform.TestHost using Microsoft.VisualStudio.TestPlatform.ObjectModel; using Microsoft.VisualStudio.TestPlatform.Utilities; + using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing; /// /// The program. @@ -26,6 +27,7 @@ public static void Main(string[] args) { try { + TestPlatformEventSource.Instance.TestHostStart(); WaitForDebuggerIfEnabled(); Run(args); } @@ -33,13 +35,22 @@ public static void Main(string[] args) { EqtTrace.Error("TestHost: Error occured during initialization of TestHost : {0}", ex); } + finally + { + TestPlatformEventSource.Instance.TestHostStop(); + } } private static void Run(string[] args) { var argsDictionary = GetArguments(args); - IEngineInvoker invoker = null; + // Invoke the engine with arguments + GetEngineInvoker(argsDictionary).Invoke(argsDictionary); + } + private static IEngineInvoker GetEngineInvoker(IDictionary argsDictionary) + { + IEngineInvoker invoker = null; #if NET46 // If Args contains test source argument, invoker Engine in new appdomain string testSourcePath; @@ -49,16 +60,15 @@ private static void Run(string[] args) argsDictionary.Remove(TestSourceArgumentString); // Only DLLs and EXEs can have app.configs or ".exe.config" or ".dll.config" - if (System.IO.File.Exists(testSourcePath) && - (testSourcePath.EndsWith(".dll", StringComparison.OrdinalIgnoreCase) + if (System.IO.File.Exists(testSourcePath) && + (testSourcePath.EndsWith(".dll", StringComparison.OrdinalIgnoreCase) || testSourcePath.EndsWith(".exe", StringComparison.OrdinalIgnoreCase))) { invoker = new AppDomainEngineInvoker(testSourcePath); } } #endif - invoker = invoker ?? new DefaultEngineInvoker(); - invoker.Invoke(argsDictionary); + return invoker ?? new DefaultEngineInvoker(); } /// diff --git a/src/testhost/project.json b/src/testhost/project.json index 62faf8bc56..4745d5272e 100644 --- a/src/testhost/project.json +++ b/src/testhost/project.json @@ -10,7 +10,8 @@ "../testhost.x86/Program.cs", "../testhost.x86/DefaultEngineInvoker.cs", "../testhost.x86/IEngineInvoker.cs", - "../testhost.x86/AppDomainEngineInvoker.cs" + "../testhost.x86/AppDomainEngineInvoker.cs", + "../testhost.x86/Friends.cs" ] }, diff --git a/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Execution/BaseRunTestsTests.cs b/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Execution/BaseRunTestsTests.cs index 738157ce3e..ac63a68028 100644 --- a/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Execution/BaseRunTestsTests.cs +++ b/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Execution/BaseRunTestsTests.cs @@ -526,7 +526,7 @@ public void RunTestsShouldRaiseTestRunComplete() Assert.AreEqual(this.runTestsInstance.GetTestRunCache.TestRunStatistics.ExecutedTests, receivedRunStatusArgs.TestRunStatistics.ExecutedTests); Assert.IsNotNull(receivedRunStatusArgs.NewTestResults); Assert.IsTrue(receivedRunStatusArgs.NewTestResults.Count() > 0); - Assert.IsNull(receivedRunStatusArgs.ActiveTests); + Assert.IsTrue(receivedRunStatusArgs.ActiveTests == null || receivedRunStatusArgs.ActiveTests.Count() == 0); // Attachments Assert.IsNotNull(receivedattachments); diff --git a/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/TestEngineTests.cs b/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/TestEngineTests.cs index 73b1278ae9..488fdd9313 100644 --- a/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/TestEngineTests.cs +++ b/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/TestEngineTests.cs @@ -161,7 +161,7 @@ public void GetDefaultTestHostManagerReturnsDotnetCoreHostManagerIfFrameworkIsNe [TestMethod] public void GetDefaultTestHostManagerReturnsASharedManagerIfDisableAppDomainIsFalse() { - var rc = new RunConfiguration() { TargetFrameworkVersion = Framework.DefaultFramework, TargetPlatform = Architecture.X86 }; + var rc = new RunConfiguration() { TargetFrameworkVersion = Framework.FromString(".NETFramework,Version=v4.6"), TargetPlatform = Architecture.X86 }; var testHostManager = this.testEngine.GetDefaultTestHostManager(rc); Assert.IsNotNull(testHostManager); @@ -172,7 +172,7 @@ public void GetDefaultTestHostManagerReturnsASharedManagerIfDisableAppDomainIsFa [TestMethod] public void GetDefaultTestHostManagerReturnsANonSharedManagerIfDisableAppDomainIsFalse() { - var rc = new RunConfiguration() { TargetFrameworkVersion = Framework.DefaultFramework, TargetPlatform = Architecture.X86, DisableAppDomain = true }; + var rc = new RunConfiguration() { TargetFrameworkVersion = Framework.FromString(".NETFramework,Version=v4.6"), TargetPlatform = Architecture.X86, DisableAppDomain = true }; var testHostManager = this.testEngine.GetDefaultTestHostManager(rc); Assert.IsNotNull(testHostManager); diff --git a/test/testhost.UnitTests/AppDomainEngineInvokerTests.cs b/test/testhost.UnitTests/AppDomainEngineInvokerTests.cs new file mode 100644 index 0000000000..e930a4da79 --- /dev/null +++ b/test/testhost.UnitTests/AppDomainEngineInvokerTests.cs @@ -0,0 +1,62 @@ +namespace testhost.UnitTests +{ +#if NET46 + using Microsoft.VisualStudio.TestPlatform.TestHost; + using Microsoft.VisualStudio.TestTools.UnitTesting; + using System; + using System.IO; + using System.Collections.Generic; + using System.Linq; + using System.Threading.Tasks; + + [TestClass] + public class AppDomainEngineInvokerTests + { + [TestMethod] + public void AppDomainEngineInvokerShouldCreateNewAppDomain() + { + var tempFile = Path.GetTempFileName(); + var appDomainInvoker = new TestableEngineInvoker(tempFile); + + Assert.IsNotNull(appDomainInvoker.NewAppDomain, "New AppDomain must be created."); + Assert.IsNotNull(appDomainInvoker.ActualInvoker, "Invoker must be created."); + Assert.AreNotEqual(AppDomain.CurrentDomain.FriendlyName, appDomainInvoker.NewAppDomain.FriendlyName, + "New AppDomain must be different from default one."); + } + + [TestMethod] + public void AppDomainEngineInvokerShouldInvokeEngineInNewDomain() + { + var tempFile = Path.GetTempFileName(); + var appDomainInvoker = new TestableEngineInvoker(tempFile); + + Assert.IsNotNull(appDomainInvoker.NewAppDomain, "New AppDomain must be created."); + Assert.IsNotNull(appDomainInvoker.ActualInvoker, "Invoker must be created."); + Assert.AreNotEqual(AppDomain.CurrentDomain.FriendlyName, + (appDomainInvoker.ActualInvoker as MockEngineInvoker).DomainFriendlyName, + "Engine must be invoked in new domain."); + } + + private class TestableEngineInvoker : AppDomainEngineInvoker + { + public TestableEngineInvoker(string testSourcePath) : base(testSourcePath) + { + } + + public AppDomain NewAppDomain => this.appDomain; + + public IEngineInvoker ActualInvoker => this.actualInvoker; + } + + private class MockEngineInvoker : MarshalByRefObject, IEngineInvoker + { + public string DomainFriendlyName { get; private set; } + + public void Invoke(IDictionary argsDictionary) + { + this.DomainFriendlyName = AppDomain.CurrentDomain.FriendlyName; + } + } + } +#endif +} diff --git a/test/testhost.UnitTests/Properties/AssemblyInfo.cs b/test/testhost.UnitTests/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..8836e952e4 --- /dev/null +++ b/test/testhost.UnitTests/Properties/AssemblyInfo.cs @@ -0,0 +1,19 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("testhost.UnitTests")] +[assembly: AssemblyTrademark("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("124dd88e-5283-4737-8395-d7c1facbfbb9")] diff --git a/test/testhost.UnitTests/project.json b/test/testhost.UnitTests/project.json new file mode 100644 index 0000000000..c929c7db79 --- /dev/null +++ b/test/testhost.UnitTests/project.json @@ -0,0 +1,47 @@ +{ + "version": "15.0.0-*", + + "buildOptions": { + "delaySign": true, + "keyFile": "../../scripts/key.snk", + "warningsAsErrors": true + }, + + "dependencies": { + "MSTest.TestFramework": "1.0.4-preview", + "MSTest.TestAdapter": { + "version": "1.1.3-preview", + "exclude": "compile" + }, + "Moq": "4.6.36-*", + "testhost": "15.0.0-*" + }, + + "frameworks": { + "netcoreapp1.0": { + "imports": [ + "dnxcore50", + "portable-net45+win8" + ], + + "dependencies": { + "Microsoft.NETCore.App": { + "type": "platform", + "version": "1.0.0" + }, + "dotnet-test-mstest": { + "version": "1.1.1-preview", + "exclude": "compile" + } + } + }, + + "net46": { + "frameworkAssemblies": { + "System.Runtime": "" + } + } + }, + + "testRunner": "mstest" +} diff --git a/test/testhost.UnitTests/testhost.UnitTests.xproj b/test/testhost.UnitTests/testhost.UnitTests.xproj new file mode 100644 index 0000000000..5bf667458e --- /dev/null +++ b/test/testhost.UnitTests/testhost.UnitTests.xproj @@ -0,0 +1,19 @@ + + + + 14.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + 09599f77-a1f2-4366-bb8a-b4b90e05bcbc + testhost.UnitTests + ..\..\artifacts\obj\$(MSBuildProjectName) + ..\..\artifacts\ + v4.5.2 + + + 2.0 + + + \ No newline at end of file From 393ade15f19ed1334e3b048893ebb97d79281dbb Mon Sep 17 00:00:00 2001 From: Arun Mahapatra Date: Fri, 14 Oct 2016 22:38:37 +0530 Subject: [PATCH 11/19] Localization readiness (#127) * Move resources to separate directory. Add embed resources option to project.json. * Embed resources for assemblies. * Add xliffparser tool. * Add xlf resources for core utilities. * Add xlf files all components. --- dogfood/UnitTestProject/project.json | 2 +- .../Execution/TestRunRequest.cs | 6 +- .../{ => Resources}/Resources.Designer.cs | 6 +- .../{ => Resources}/Resources.resx | 0 .../Resources/xlf/Resources.cs.xlf | 17 + .../Resources/xlf/Resources.de.xlf | 17 + .../Resources/xlf/Resources.es.xlf | 17 + .../Resources/xlf/Resources.fr.xlf | 17 + .../Resources/xlf/Resources.it.xlf | 17 + .../Resources/xlf/Resources.ja.xlf | 17 + .../Resources/xlf/Resources.ko.xlf | 17 + .../Resources/xlf/Resources.pl.xlf | 17 + .../Resources/xlf/Resources.pt-BR.xlf | 17 + .../Resources/xlf/Resources.ru.xlf | 17 + .../Resources/xlf/Resources.tr.xlf | 17 + .../Resources/xlf/Resources.zh-Hans.xlf | 17 + .../Resources/xlf/Resources.zh-Hant.xlf | 17 + .../project.json | 3 +- .../TestExtensionManager.cs | 2 +- .../Filtering/Condition.cs | 8 +- .../Filtering/FilterExpression.cs | 18 +- .../Logging/TestLoggerManager.cs | 15 +- .../Logging/TestSessionMessageLogger.cs | 4 +- .../{ => Resources}/Resources.Designer.cs | 6 +- .../{ => Resources}/Resources.resx | 0 .../Resources/xlf/Resources.cs.xlf | 112 +++ .../Resources/xlf/Resources.de.xlf | 112 +++ .../Resources/xlf/Resources.es.xlf | 112 +++ .../Resources/xlf/Resources.fr.xlf | 112 +++ .../Resources/xlf/Resources.it.xlf | 112 +++ .../Resources/xlf/Resources.ja.xlf | 112 +++ .../Resources/xlf/Resources.ko.xlf | 112 +++ .../Resources/xlf/Resources.pl.xlf | 112 +++ .../Resources/xlf/Resources.pt-BR.xlf | 112 +++ .../Resources/xlf/Resources.ru.xlf | 112 +++ .../Resources/xlf/Resources.tr.xlf | 112 +++ .../Resources/xlf/Resources.zh-Hans.xlf | 112 +++ .../Resources/xlf/Resources.zh-Hant.xlf | 112 +++ .../RunSettings.cs | 19 +- .../SettingsProviderExtensionManager.cs | 7 +- .../project.json | 3 +- .../{ => Resources}/Resources.Designer.cs | 4 +- .../{ => Resources}/Resources.resx | 0 .../Resources/xlf/Resources.cs.xlf | 27 + .../Resources/xlf/Resources.de.xlf | 27 + .../Resources/xlf/Resources.es.xlf | 27 + .../Resources/xlf/Resources.fr.xlf | 27 + .../Resources/xlf/Resources.it.xlf | 27 + .../Resources/xlf/Resources.ja.xlf | 27 + .../Resources/xlf/Resources.ko.xlf | 27 + .../Resources/xlf/Resources.pl.xlf | 27 + .../Resources/xlf/Resources.pt-BR.xlf | 27 + .../Resources/xlf/Resources.ru.xlf | 27 + .../Resources/xlf/Resources.tr.xlf | 27 + .../Resources/xlf/Resources.zh-Hans.xlf | 27 + .../Resources/xlf/Resources.zh-Hant.xlf | 27 + .../TestRequestSender.cs | 13 +- .../project.json | 3 +- .../Output/OutputUtilities.cs | 1 + .../{ => Resources}/Resources.Designer.cs | 4 +- .../{ => Resources}/Resources.resx | 0 .../Resources/xlf/Resources.cs.xlf | 82 ++ .../Resources/xlf/Resources.de.xlf | 82 ++ .../Resources/xlf/Resources.es.xlf | 82 ++ .../Resources/xlf/Resources.fr.xlf | 82 ++ .../Resources/xlf/Resources.it.xlf | 82 ++ .../Resources/xlf/Resources.ja.xlf | 82 ++ .../Resources/xlf/Resources.ko.xlf | 82 ++ .../Resources/xlf/Resources.pl.xlf | 82 ++ .../Resources/xlf/Resources.pt-BR.xlf | 82 ++ .../Resources/xlf/Resources.ru.xlf | 82 ++ .../Resources/xlf/Resources.tr.xlf | 82 ++ .../Resources/xlf/Resources.zh-Hans.xlf | 82 ++ .../Resources/xlf/Resources.zh-Hant.xlf | 82 ++ .../Tracing/EqtTrace.cs | 1 + .../Tracing/RollingFileTraceListener.cs | 1 + .../Utilities/JobQueue.cs | 1 + .../Utilities/MulticastDelegateUtilities.cs | 1 + .../ValidateArg.cs | 1 + .../project.json | 3 +- .../Adapter/FrameworkHandle.cs | 9 +- .../Adapter/RunContext.cs | 8 +- .../Client/ProxyOperationManager.cs | 6 +- .../Discovery/DiscovererEnumerator.cs | 14 +- .../Discovery/DiscoveryManager.cs | 15 +- .../Execution/BaseRunTests.cs | 19 +- .../Execution/RunTestsWithSources.cs | 15 +- .../{ => Resources}/Resources.Designer.cs | 4 +- .../{ => Resources}/Resources.resx | 0 .../Resources/xlf/Resources.cs.xlf | 87 ++ .../Resources/xlf/Resources.de.xlf | 87 ++ .../Resources/xlf/Resources.es.xlf | 87 ++ .../Resources/xlf/Resources.fr.xlf | 87 ++ .../Resources/xlf/Resources.it.xlf | 87 ++ .../Resources/xlf/Resources.ja.xlf | 87 ++ .../Resources/xlf/Resources.ko.xlf | 87 ++ .../Resources/xlf/Resources.pl.xlf | 87 ++ .../Resources/xlf/Resources.pt-BR.xlf | 87 ++ .../Resources/xlf/Resources.ru.xlf | 87 ++ .../Resources/xlf/Resources.tr.xlf | 87 ++ .../Resources/xlf/Resources.zh-Hans.xlf | 87 ++ .../Resources/xlf/Resources.zh-Hant.xlf | 87 ++ .../project.json | 3 +- .../ObjectModel/TestListCategory.cs | 9 +- .../ObjectModel/TestRun.cs | 8 +- .../ObjectModel/UnitTestElement.cs | 6 +- .../ObjectModel/UnitTestResult.cs | 4 +- .../{ => Resources}/TrxResource.Designer.cs | 6 +- .../{ => Resources}/TrxResource.resx | 0 .../Resources/xlf/TrxResource.cs.xlf | 159 ++++ .../Resources/xlf/TrxResource.de.xlf | 159 ++++ .../Resources/xlf/TrxResource.es.xlf | 159 ++++ .../Resources/xlf/TrxResource.fr.xlf | 159 ++++ .../Resources/xlf/TrxResource.it.xlf | 159 ++++ .../Resources/xlf/TrxResource.ja.xlf | 159 ++++ .../Resources/xlf/TrxResource.ko.xlf | 159 ++++ .../Resources/xlf/TrxResource.pl.xlf | 159 ++++ .../Resources/xlf/TrxResource.pt-BR.xlf | 159 ++++ .../Resources/xlf/TrxResource.ru.xlf | 159 ++++ .../Resources/xlf/TrxResource.tr.xlf | 159 ++++ .../Resources/xlf/TrxResource.zh-Hans.xlf | 159 ++++ .../Resources/xlf/TrxResource.zh-Hant.xlf | 159 ++++ .../TrxLogger.cs | 6 +- .../Utility/Converter.cs | 8 +- .../Utility/EqtAssert.cs | 4 +- .../Utility/FilterHelper.cs | 6 +- .../project.json | 3 +- .../Client/DiscoveryCriteria.cs | 2 + .../Client/TestRunCriteria.cs | 1 + .../DataCollector/Common/RequestId.cs | 2 + .../DataCollectionRunSettings.cs | 8 +- .../DataCollector/DataCollectorSettings.cs | 11 +- .../FileTransferInformation.cs | 2 +- .../StreamTransferInformation.cs | 8 +- .../DefaultExecutorUriAttribute.cs | 2 + .../ExtensionUriAttribute.cs | 2 + .../FileExtensionAttribute.cs | 2 + .../FriendlyNameAttribute.cs | 2 + .../Logging/Events/TestRunMessageEventArgs.cs | 2 + .../CommonResources.Designer.cs | 6 +- .../{ => Resources}/CommonResources.resx | 0 .../{ => Resources}/CommonResources.tt | 0 .../{ => Resources}/Resources.Designer.cs | 6 +- .../{ => Resources}/Resources.resx | 0 .../Resources/xlf/CommonResources.cs.xlf | 22 + .../Resources/xlf/CommonResources.de.xlf | 22 + .../Resources/xlf/CommonResources.es.xlf | 22 + .../Resources/xlf/CommonResources.fr.xlf | 22 + .../Resources/xlf/CommonResources.it.xlf | 22 + .../Resources/xlf/CommonResources.ja.xlf | 22 + .../Resources/xlf/CommonResources.ko.xlf | 22 + .../Resources/xlf/CommonResources.pl.xlf | 22 + .../Resources/xlf/CommonResources.pt-BR.xlf | 22 + .../Resources/xlf/CommonResources.ru.xlf | 22 + .../Resources/xlf/CommonResources.tr.xlf | 22 + .../Resources/xlf/CommonResources.zh-Hans.xlf | 22 + .../Resources/xlf/CommonResources.zh-Hant.xlf | 22 + .../Resources/xlf/Resources.cs.xlf | 323 +++++++ .../Resources/xlf/Resources.de.xlf | 323 +++++++ .../Resources/xlf/Resources.es.xlf | 323 +++++++ .../Resources/xlf/Resources.fr.xlf | 323 +++++++ .../Resources/xlf/Resources.it.xlf | 323 +++++++ .../Resources/xlf/Resources.ja.xlf | 323 +++++++ .../Resources/xlf/Resources.ko.xlf | 323 +++++++ .../Resources/xlf/Resources.pl.xlf | 323 +++++++ .../Resources/xlf/Resources.pt-BR.xlf | 323 +++++++ .../Resources/xlf/Resources.ru.xlf | 323 +++++++ .../Resources/xlf/Resources.tr.xlf | 323 +++++++ .../Resources/xlf/Resources.zh-Hans.xlf | 323 +++++++ .../Resources/xlf/Resources.zh-Hant.xlf | 323 +++++++ .../RunSettings/RunConfiguration.cs | 22 +- .../RunSettings/SettingsNameAttribute.cs | 2 + .../RunSettings/TestRunParameters.cs | 2 +- .../TestObject.cs | 4 +- .../TestOutcomeHelper.cs | 10 +- .../TestProperty/TestProperty.cs | 4 +- .../TestResult.cs | 26 +- .../TraitCollection.cs | 2 +- .../Utilities/StringUtilities.cs | 2 +- .../Utilities/XmlReaderUtilities.cs | 2 +- .../Utilities/XmlRunSettingsUtilities.cs | 2 +- .../project.json | 3 +- .../InferRunSettingsHelper.cs | 16 +- .../MSTestSettingsUtilities.cs | 6 +- .../Resources.Designer.cs} | 10 +- .../Resources.resx} | 0 .../Resources/xlf/Resources.cs.xlf | 42 + .../Resources/xlf/Resources.de.xlf | 42 + .../Resources/xlf/Resources.es.xlf | 42 + .../Resources/xlf/Resources.fr.xlf | 42 + .../Resources/xlf/Resources.it.xlf | 42 + .../Resources/xlf/Resources.ja.xlf | 42 + .../Resources/xlf/Resources.ko.xlf | 42 + .../Resources/xlf/Resources.pl.xlf | 42 + .../Resources/xlf/Resources.pt-BR.xlf | 42 + .../Resources/xlf/Resources.ru.xlf | 42 + .../Resources/xlf/Resources.tr.xlf | 42 + .../Resources/xlf/Resources.zh-Hans.xlf | 42 + .../Resources/xlf/Resources.zh-Hant.xlf | 42 + .../project.json | 3 +- .../{ => Resources}/Resources.Designer.cs | 4 +- .../{ => Resources}/Resources.resx | 0 .../Resources/xlf/Resources.cs.xlf | 27 + .../Resources/xlf/Resources.de.xlf | 27 + .../Resources/xlf/Resources.es.xlf | 27 + .../Resources/xlf/Resources.fr.xlf | 27 + .../Resources/xlf/Resources.it.xlf | 27 + .../Resources/xlf/Resources.ja.xlf | 27 + .../Resources/xlf/Resources.ko.xlf | 27 + .../Resources/xlf/Resources.pl.xlf | 27 + .../Resources/xlf/Resources.pt-BR.xlf | 27 + .../Resources/xlf/Resources.ru.xlf | 27 + .../Resources/xlf/Resources.tr.xlf | 27 + .../Resources/xlf/Resources.zh-Hans.xlf | 27 + .../Resources/xlf/Resources.zh-Hant.xlf | 27 + .../VsTestConsoleRequestSender.cs | 8 +- .../project.json | 3 +- src/package/project.json | 4 + .../CommandLine/CommandArgumentPair.cs | 6 +- .../CommandLine/CommandLineOptions.cs | 8 +- src/vstest.console/CommandLine/Executor.cs | 19 +- src/vstest.console/Internal/ConsoleLogger.cs | 56 +- .../Processors/EnableDiagArgumentProcessor.cs | 10 +- .../EnableLoggerArgumentProcessor.cs | 8 +- .../Processors/FrameworkArgumentProcessor.cs | 11 +- .../Processors/HelpArgumentProcessor.cs | 14 +- .../Processors/ListTestsArgumentProcessor.cs | 20 +- .../Processors/ParallelArgumentProcessor.cs | 9 +- .../ParentProcessIdArgumentProcessor.cs | 9 +- .../Processors/PlatformArgumentProcessor.cs | 8 +- .../Processors/PortArgumentProcessor.cs | 17 +- .../RunSettingsArgumentProcessor.cs | 21 +- .../RunSpecificTestsArgumentProcessor.cs | 40 +- .../Processors/RunTestsArgumentProcessor.cs | 25 +- .../TestAdapterPathArgumentProcessor.cs | 11 +- .../TestCaseFilterArgumentProcessor.cs | 6 +- .../{ => Resources}/Resources.Designer.cs | 4 +- .../{ => Resources}/Resources.resx | 0 .../Resources/xlf/Resources.cs.xlf | 846 ++++++++++++++++++ .../Resources/xlf/Resources.de.xlf | 846 ++++++++++++++++++ .../Resources/xlf/Resources.es.xlf | 846 ++++++++++++++++++ .../Resources/xlf/Resources.fr.xlf | 846 ++++++++++++++++++ .../Resources/xlf/Resources.it.xlf | 846 ++++++++++++++++++ .../Resources/xlf/Resources.ja.xlf | 846 ++++++++++++++++++ .../Resources/xlf/Resources.ko.xlf | 846 ++++++++++++++++++ .../Resources/xlf/Resources.pl.xlf | 846 ++++++++++++++++++ .../Resources/xlf/Resources.pt-BR.xlf | 846 ++++++++++++++++++ .../Resources/xlf/Resources.ru.xlf | 846 ++++++++++++++++++ .../Resources/xlf/Resources.tr.xlf | 846 ++++++++++++++++++ .../Resources/xlf/Resources.zh-Hans.xlf | 846 ++++++++++++++++++ .../Resources/xlf/Resources.zh-Hant.xlf | 846 ++++++++++++++++++ src/vstest.console/project.json | 3 +- .../TestRequestSenderTests.cs | 7 +- .../Discovery/DiscoveryManagerTests.cs | 8 +- .../TrxLoggerTests.cs | 23 +- .../ExecutorUnitTests.cs | 4 +- .../Internal/ConsoleLoggerTests.cs | 67 +- .../EnableDiagArgumentProcessorTests.cs | 4 +- 258 files changed, 23168 insertions(+), 398 deletions(-) rename src/Microsoft.TestPlatform.Client/{ => Resources}/Resources.Designer.cs (93%) rename src/Microsoft.TestPlatform.Client/{ => Resources}/Resources.resx (100%) create mode 100644 src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.cs.xlf create mode 100644 src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.de.xlf create mode 100644 src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.es.xlf create mode 100644 src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.fr.xlf create mode 100644 src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.it.xlf create mode 100644 src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.ja.xlf create mode 100644 src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.ko.xlf create mode 100644 src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.pl.xlf create mode 100644 src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.pt-BR.xlf create mode 100644 src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.ru.xlf create mode 100644 src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.tr.xlf create mode 100644 src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.zh-Hans.xlf create mode 100644 src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.zh-Hant.xlf rename src/Microsoft.TestPlatform.Common/{ => Resources}/Resources.Designer.cs (97%) rename src/Microsoft.TestPlatform.Common/{ => Resources}/Resources.resx (100%) create mode 100644 src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.cs.xlf create mode 100644 src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.de.xlf create mode 100644 src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.es.xlf create mode 100644 src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.fr.xlf create mode 100644 src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.it.xlf create mode 100644 src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.ja.xlf create mode 100644 src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.ko.xlf create mode 100644 src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.pl.xlf create mode 100644 src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.pt-BR.xlf create mode 100644 src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.ru.xlf create mode 100644 src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.tr.xlf create mode 100644 src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.zh-Hans.xlf create mode 100644 src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.zh-Hant.xlf rename src/Microsoft.TestPlatform.CommunicationUtilities/{ => Resources}/Resources.Designer.cs (97%) rename src/Microsoft.TestPlatform.CommunicationUtilities/{ => Resources}/Resources.resx (100%) create mode 100644 src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.cs.xlf create mode 100644 src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.de.xlf create mode 100644 src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.es.xlf create mode 100644 src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.fr.xlf create mode 100644 src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.it.xlf create mode 100644 src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.ja.xlf create mode 100644 src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.ko.xlf create mode 100644 src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.pl.xlf create mode 100644 src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.pt-BR.xlf create mode 100644 src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.ru.xlf create mode 100644 src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.tr.xlf create mode 100644 src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.zh-Hans.xlf create mode 100644 src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.zh-Hant.xlf rename src/Microsoft.TestPlatform.CoreUtilities/{ => Resources}/Resources.Designer.cs (97%) rename src/Microsoft.TestPlatform.CoreUtilities/{ => Resources}/Resources.resx (100%) create mode 100644 src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.cs.xlf create mode 100644 src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.de.xlf create mode 100644 src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.es.xlf create mode 100644 src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.fr.xlf create mode 100644 src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.it.xlf create mode 100644 src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.ja.xlf create mode 100644 src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.ko.xlf create mode 100644 src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.pl.xlf create mode 100644 src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.pt-BR.xlf create mode 100644 src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.ru.xlf create mode 100644 src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.tr.xlf create mode 100644 src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.zh-Hans.xlf create mode 100644 src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.zh-Hant.xlf rename src/Microsoft.TestPlatform.CrossPlatEngine/{ => Resources}/Resources.Designer.cs (98%) rename src/Microsoft.TestPlatform.CrossPlatEngine/{ => Resources}/Resources.resx (100%) create mode 100644 src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.cs.xlf create mode 100644 src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.de.xlf create mode 100644 src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.es.xlf create mode 100644 src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.fr.xlf create mode 100644 src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.it.xlf create mode 100644 src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.ja.xlf create mode 100644 src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.ko.xlf create mode 100644 src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.pl.xlf create mode 100644 src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.pt-BR.xlf create mode 100644 src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.ru.xlf create mode 100644 src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.tr.xlf create mode 100644 src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.zh-Hans.xlf create mode 100644 src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.zh-Hant.xlf rename src/Microsoft.TestPlatform.Extensions.TrxLogger/{ => Resources}/TrxResource.Designer.cs (98%) rename src/Microsoft.TestPlatform.Extensions.TrxLogger/{ => Resources}/TrxResource.resx (100%) create mode 100644 src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.cs.xlf create mode 100644 src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.de.xlf create mode 100644 src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.es.xlf create mode 100644 src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.fr.xlf create mode 100644 src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.it.xlf create mode 100644 src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.ja.xlf create mode 100644 src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.ko.xlf create mode 100644 src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.pl.xlf create mode 100644 src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.pt-BR.xlf create mode 100644 src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.ru.xlf create mode 100644 src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.tr.xlf create mode 100644 src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.zh-Hans.xlf create mode 100644 src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.zh-Hant.xlf rename src/Microsoft.TestPlatform.ObjectModel/{ => Resources}/CommonResources.Designer.cs (93%) rename src/Microsoft.TestPlatform.ObjectModel/{ => Resources}/CommonResources.resx (100%) rename src/Microsoft.TestPlatform.ObjectModel/{ => Resources}/CommonResources.tt (100%) rename src/Microsoft.TestPlatform.ObjectModel/{ => Resources}/Resources.Designer.cs (99%) rename src/Microsoft.TestPlatform.ObjectModel/{ => Resources}/Resources.resx (100%) create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.cs.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.de.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.es.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.fr.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.it.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.ja.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.ko.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.pl.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.pt-BR.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.ru.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.tr.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.zh-Hans.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.zh-Hant.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.cs.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.de.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.es.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.fr.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.it.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.ja.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.ko.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.pl.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.pt-BR.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.ru.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.tr.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.zh-Hans.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.zh-Hant.xlf rename src/Microsoft.TestPlatform.Utilities/{Resource.Designer.cs => Resources/Resources.Designer.cs} (94%) rename src/Microsoft.TestPlatform.Utilities/{Resource.resx => Resources/Resources.resx} (100%) create mode 100644 src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.cs.xlf create mode 100644 src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.de.xlf create mode 100644 src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.es.xlf create mode 100644 src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.fr.xlf create mode 100644 src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.it.xlf create mode 100644 src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.ja.xlf create mode 100644 src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.ko.xlf create mode 100644 src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.pl.xlf create mode 100644 src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.pt-BR.xlf create mode 100644 src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.ru.xlf create mode 100644 src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.tr.xlf create mode 100644 src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.zh-Hans.xlf create mode 100644 src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.zh-Hant.xlf rename src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/{ => Resources}/Resources.Designer.cs (95%) rename src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/{ => Resources}/Resources.resx (100%) create mode 100644 src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.cs.xlf create mode 100644 src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.de.xlf create mode 100644 src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.es.xlf create mode 100644 src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.fr.xlf create mode 100644 src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.it.xlf create mode 100644 src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.ja.xlf create mode 100644 src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.ko.xlf create mode 100644 src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.pl.xlf create mode 100644 src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.pt-BR.xlf create mode 100644 src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.ru.xlf create mode 100644 src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.tr.xlf create mode 100644 src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.zh-Hans.xlf create mode 100644 src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.zh-Hant.xlf rename src/vstest.console/{ => Resources}/Resources.Designer.cs (99%) rename src/vstest.console/{ => Resources}/Resources.resx (100%) create mode 100644 src/vstest.console/Resources/xlf/Resources.cs.xlf create mode 100644 src/vstest.console/Resources/xlf/Resources.de.xlf create mode 100644 src/vstest.console/Resources/xlf/Resources.es.xlf create mode 100644 src/vstest.console/Resources/xlf/Resources.fr.xlf create mode 100644 src/vstest.console/Resources/xlf/Resources.it.xlf create mode 100644 src/vstest.console/Resources/xlf/Resources.ja.xlf create mode 100644 src/vstest.console/Resources/xlf/Resources.ko.xlf create mode 100644 src/vstest.console/Resources/xlf/Resources.pl.xlf create mode 100644 src/vstest.console/Resources/xlf/Resources.pt-BR.xlf create mode 100644 src/vstest.console/Resources/xlf/Resources.ru.xlf create mode 100644 src/vstest.console/Resources/xlf/Resources.tr.xlf create mode 100644 src/vstest.console/Resources/xlf/Resources.zh-Hans.xlf create mode 100644 src/vstest.console/Resources/xlf/Resources.zh-Hant.xlf diff --git a/dogfood/UnitTestProject/project.json b/dogfood/UnitTestProject/project.json index 9ad20011b9..7a95a808d5 100644 --- a/dogfood/UnitTestProject/project.json +++ b/dogfood/UnitTestProject/project.json @@ -2,7 +2,7 @@ "version": "1.0.0-*", "dependencies": { - "MSTest.TestFramework": "1.0.0-preview" + "MSTest.TestFramework": "1.0.4-preview" }, "frameworks": { diff --git a/src/Microsoft.TestPlatform.Client/Execution/TestRunRequest.cs b/src/Microsoft.TestPlatform.Client/Execution/TestRunRequest.cs index 4e3e92b0ef..b14aba6285 100644 --- a/src/Microsoft.TestPlatform.Client/Execution/TestRunRequest.cs +++ b/src/Microsoft.TestPlatform.Client/Execution/TestRunRequest.cs @@ -13,7 +13,7 @@ namespace Microsoft.VisualStudio.TestPlatform.Client.Execution using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging; using Microsoft.VisualStudio.TestPlatform.Utilities; - using Resources = Microsoft.VisualStudio.TestPlatform.Client.Resources; + using ClientResources = Microsoft.VisualStudio.TestPlatform.Client.Resources.Resources; public class TestRunRequest : ITestRunRequest, ITestRunEventsHandler { @@ -48,7 +48,7 @@ public int ExecuteAsync() if (this.State != TestRunState.Pending) { - throw new InvalidOperationException(Resources.InvalidStateForExecution); + throw new InvalidOperationException(ClientResources.InvalidStateForExecution); } EqtTrace.Info("TestRunRequest.ExecuteAsync: Starting run with settings:{0}", this.testRunCriteria); @@ -100,7 +100,7 @@ public bool WaitForCompletion(int timeout) || this.State == TestRunState.Aborted)) { // If run is already terminated, then we should not throw an exception. - throw new InvalidOperationException(Resources.WaitForCompletionOperationIsNotAllowedWhenNoTestRunIsActive); + throw new InvalidOperationException(ClientResources.WaitForCompletionOperationIsNotAllowedWhenNoTestRunIsActive); } // This method is not synchronized as it can lead to dead-lock diff --git a/src/Microsoft.TestPlatform.Client/Resources.Designer.cs b/src/Microsoft.TestPlatform.Client/Resources/Resources.Designer.cs similarity index 93% rename from src/Microsoft.TestPlatform.Client/Resources.Designer.cs rename to src/Microsoft.TestPlatform.Client/Resources/Resources.Designer.cs index f4a53e025a..34493b4626 100644 --- a/src/Microsoft.TestPlatform.Client/Resources.Designer.cs +++ b/src/Microsoft.TestPlatform.Client/Resources/Resources.Designer.cs @@ -1,4 +1,4 @@ -//------------------------------------------------------------------------------ +//------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.42000 @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace Microsoft.VisualStudio.TestPlatform.Client { +namespace Microsoft.VisualStudio.TestPlatform.Client.Resources { using System; using System.Reflection; @@ -38,7 +38,7 @@ internal Resources() { public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.TestPlatform.Client.Resources", typeof(Resources).GetTypeInfo().Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.TestPlatform.Client.Resources.Resources", typeof(Resources).GetTypeInfo().Assembly); resourceMan = temp; } return resourceMan; diff --git a/src/Microsoft.TestPlatform.Client/Resources.resx b/src/Microsoft.TestPlatform.Client/Resources/Resources.resx similarity index 100% rename from src/Microsoft.TestPlatform.Client/Resources.resx rename to src/Microsoft.TestPlatform.Client/Resources/Resources.resx diff --git a/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.cs.xlf b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.cs.xlf new file mode 100644 index 0000000000..d04e78879d --- /dev/null +++ b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.cs.xlf @@ -0,0 +1,17 @@ + + + + + + The test run could not be executed because the initial state was invalid. + The test run could not be executed because the initial state was invalid. + + + + Wait for completion operation is not allowed when there is no active test run. + Wait for completion operation is not allowed when there is no active test run. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.de.xlf b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.de.xlf new file mode 100644 index 0000000000..499162759f --- /dev/null +++ b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.de.xlf @@ -0,0 +1,17 @@ + + + + + + The test run could not be executed because the initial state was invalid. + The test run could not be executed because the initial state was invalid. + + + + Wait for completion operation is not allowed when there is no active test run. + Wait for completion operation is not allowed when there is no active test run. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.es.xlf b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.es.xlf new file mode 100644 index 0000000000..d5b50f8278 --- /dev/null +++ b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.es.xlf @@ -0,0 +1,17 @@ + + + + + + The test run could not be executed because the initial state was invalid. + The test run could not be executed because the initial state was invalid. + + + + Wait for completion operation is not allowed when there is no active test run. + Wait for completion operation is not allowed when there is no active test run. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.fr.xlf b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.fr.xlf new file mode 100644 index 0000000000..605666ca79 --- /dev/null +++ b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.fr.xlf @@ -0,0 +1,17 @@ + + + + + + The test run could not be executed because the initial state was invalid. + The test run could not be executed because the initial state was invalid. + + + + Wait for completion operation is not allowed when there is no active test run. + Wait for completion operation is not allowed when there is no active test run. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.it.xlf b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.it.xlf new file mode 100644 index 0000000000..ec1d98950c --- /dev/null +++ b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.it.xlf @@ -0,0 +1,17 @@ + + + + + + The test run could not be executed because the initial state was invalid. + The test run could not be executed because the initial state was invalid. + + + + Wait for completion operation is not allowed when there is no active test run. + Wait for completion operation is not allowed when there is no active test run. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.ja.xlf b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.ja.xlf new file mode 100644 index 0000000000..458f62285c --- /dev/null +++ b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.ja.xlf @@ -0,0 +1,17 @@ + + + + + + The test run could not be executed because the initial state was invalid. + The test run could not be executed because the initial state was invalid. + + + + Wait for completion operation is not allowed when there is no active test run. + Wait for completion operation is not allowed when there is no active test run. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.ko.xlf b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.ko.xlf new file mode 100644 index 0000000000..a01458d86b --- /dev/null +++ b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.ko.xlf @@ -0,0 +1,17 @@ + + + + + + The test run could not be executed because the initial state was invalid. + The test run could not be executed because the initial state was invalid. + + + + Wait for completion operation is not allowed when there is no active test run. + Wait for completion operation is not allowed when there is no active test run. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.pl.xlf b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.pl.xlf new file mode 100644 index 0000000000..56a4238785 --- /dev/null +++ b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.pl.xlf @@ -0,0 +1,17 @@ + + + + + + The test run could not be executed because the initial state was invalid. + The test run could not be executed because the initial state was invalid. + + + + Wait for completion operation is not allowed when there is no active test run. + Wait for completion operation is not allowed when there is no active test run. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.pt-BR.xlf b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.pt-BR.xlf new file mode 100644 index 0000000000..b86ed4d5f4 --- /dev/null +++ b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.pt-BR.xlf @@ -0,0 +1,17 @@ + + + + + + The test run could not be executed because the initial state was invalid. + The test run could not be executed because the initial state was invalid. + + + + Wait for completion operation is not allowed when there is no active test run. + Wait for completion operation is not allowed when there is no active test run. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.ru.xlf b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.ru.xlf new file mode 100644 index 0000000000..d433d1be53 --- /dev/null +++ b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.ru.xlf @@ -0,0 +1,17 @@ + + + + + + The test run could not be executed because the initial state was invalid. + The test run could not be executed because the initial state was invalid. + + + + Wait for completion operation is not allowed when there is no active test run. + Wait for completion operation is not allowed when there is no active test run. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.tr.xlf b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.tr.xlf new file mode 100644 index 0000000000..0008b20fa6 --- /dev/null +++ b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.tr.xlf @@ -0,0 +1,17 @@ + + + + + + The test run could not be executed because the initial state was invalid. + The test run could not be executed because the initial state was invalid. + + + + Wait for completion operation is not allowed when there is no active test run. + Wait for completion operation is not allowed when there is no active test run. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.zh-Hans.xlf b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.zh-Hans.xlf new file mode 100644 index 0000000000..4d6d84d4dc --- /dev/null +++ b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.zh-Hans.xlf @@ -0,0 +1,17 @@ + + + + + + The test run could not be executed because the initial state was invalid. + The test run could not be executed because the initial state was invalid. + + + + Wait for completion operation is not allowed when there is no active test run. + Wait for completion operation is not allowed when there is no active test run. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.zh-Hant.xlf b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.zh-Hant.xlf new file mode 100644 index 0000000000..975d46faac --- /dev/null +++ b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.zh-Hant.xlf @@ -0,0 +1,17 @@ + + + + + + The test run could not be executed because the initial state was invalid. + The test run could not be executed because the initial state was invalid. + + + + Wait for completion operation is not allowed when there is no active test run. + Wait for completion operation is not allowed when there is no active test run. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Client/project.json b/src/Microsoft.TestPlatform.Client/project.json index edfc63a97d..45490589d4 100644 --- a/src/Microsoft.TestPlatform.Client/project.json +++ b/src/Microsoft.TestPlatform.Client/project.json @@ -4,7 +4,8 @@ "outputName": "Microsoft.VisualStudio.TestPlatform.Client", "delaySign": true, "keyFile": "../../scripts/key.snk", - "warningsAsErrors": true + "warningsAsErrors": true, + "embed": [ "Resources/*.resx" ] }, "dependencies": { diff --git a/src/Microsoft.TestPlatform.Common/ExtensionFramework/TestExtensionManager.cs b/src/Microsoft.TestPlatform.Common/ExtensionFramework/TestExtensionManager.cs index 93e7f12b41..89300136f5 100644 --- a/src/Microsoft.TestPlatform.Common/ExtensionFramework/TestExtensionManager.cs +++ b/src/Microsoft.TestPlatform.Common/ExtensionFramework/TestExtensionManager.cs @@ -10,7 +10,7 @@ namespace Microsoft.VisualStudio.TestPlatform.Common.ExtensionFramework using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Globalization; - using CommonResources = Microsoft.VisualStudio.TestPlatform.Common.Resources; + using CommonResources = Microsoft.VisualStudio.TestPlatform.Common.Resources.Resources; /// /// Generic base class for managing extensions and looking them up by their URI. diff --git a/src/Microsoft.TestPlatform.Common/Filtering/Condition.cs b/src/Microsoft.TestPlatform.Common/Filtering/Condition.cs index c815dc75f4..1a440b80b2 100644 --- a/src/Microsoft.TestPlatform.Common/Filtering/Condition.cs +++ b/src/Microsoft.TestPlatform.Common/Filtering/Condition.cs @@ -10,7 +10,7 @@ namespace Microsoft.VisualStudio.TestPlatform.Common.Filtering using System.Text.RegularExpressions; using Microsoft.VisualStudio.TestPlatform.ObjectModel; - using Microsoft.VisualStudio.TestPlatform.Utilities; + using CommonResources = Microsoft.VisualStudio.TestPlatform.Common.Resources.Resources; internal enum Operation { @@ -158,14 +158,14 @@ internal static Condition Parse(string conditionString) string[] parts = Regex.Split(conditionString, propertyNameValueSeperatorString); if (parts.Length != 3) { - throw new FormatException(string.Format(CultureInfo.CurrentCulture, Common.Resources.TestCaseFilterFormatException, string.Format(CultureInfo.CurrentCulture, Common.Resources.InvalidCondition, conditionString))); + throw new FormatException(string.Format(CultureInfo.CurrentCulture, CommonResources.TestCaseFilterFormatException, string.Format(CultureInfo.CurrentCulture, CommonResources.InvalidCondition, conditionString))); } for (int index = 0; index < 3; index++) { if (string.IsNullOrWhiteSpace(parts[index])) { - throw new FormatException(string.Format(CultureInfo.CurrentCulture, Common.Resources.TestCaseFilterFormatException, string.Format(CultureInfo.CurrentCulture, Common.Resources.InvalidCondition, conditionString))); + throw new FormatException(string.Format(CultureInfo.CurrentCulture, CommonResources.TestCaseFilterFormatException, string.Format(CultureInfo.CurrentCulture, CommonResources.InvalidCondition, conditionString))); } parts[index] = parts[index].Trim(); } @@ -235,7 +235,7 @@ private static Operation GetOperator(string operationString) case "~": return Operation.Contains; } - throw new FormatException(string.Format(CultureInfo.CurrentCulture, Common.Resources.TestCaseFilterFormatException, string.Format(CultureInfo.CurrentCulture, Common.Resources.InvalidOperator, operationString))); + throw new FormatException(string.Format(CultureInfo.CurrentCulture, CommonResources.TestCaseFilterFormatException, string.Format(CultureInfo.CurrentCulture, CommonResources.InvalidOperator, operationString))); } /// diff --git a/src/Microsoft.TestPlatform.Common/Filtering/FilterExpression.cs b/src/Microsoft.TestPlatform.Common/Filtering/FilterExpression.cs index 2da06fabff..3377ca1678 100644 --- a/src/Microsoft.TestPlatform.Common/Filtering/FilterExpression.cs +++ b/src/Microsoft.TestPlatform.Common/Filtering/FilterExpression.cs @@ -10,7 +10,7 @@ namespace Microsoft.VisualStudio.TestPlatform.Common.Filtering using System.Text.RegularExpressions; using Microsoft.VisualStudio.TestPlatform.ObjectModel; - using Microsoft.VisualStudio.TestPlatform.Utilities; + using CommonResources = Microsoft.VisualStudio.TestPlatform.Common.Resources.Resources; /// /// Represents an expression tree. @@ -121,7 +121,7 @@ private static void ProcessOperator(Stack filterStack, Operato { if (filterStack.Count < 2) { - throw new FormatException(string.Format(CultureInfo.CurrentCulture, Common.Resources.TestCaseFilterFormatException, Common.Resources.MissingOperand)); + throw new FormatException(string.Format(CultureInfo.CurrentCulture, CommonResources.TestCaseFilterFormatException, CommonResources.MissingOperand)); } var filterRight = filterStack.Pop(); @@ -133,7 +133,7 @@ private static void ProcessOperator(Stack filterStack, Operato { if (filterStack.Count < 2) { - throw new FormatException(string.Format(CultureInfo.CurrentCulture, Common.Resources.TestCaseFilterFormatException, Common.Resources.MissingOperand)); + throw new FormatException(string.Format(CultureInfo.CurrentCulture, CommonResources.TestCaseFilterFormatException, CommonResources.MissingOperand)); } var filterRight = filterStack.Pop(); @@ -143,12 +143,12 @@ private static void ProcessOperator(Stack filterStack, Operato } else if (op == Operator.OpenBrace) { - throw new FormatException(string.Format(CultureInfo.CurrentCulture, Common.Resources.TestCaseFilterFormatException, Common.Resources.MissingCloseParenthesis)); + throw new FormatException(string.Format(CultureInfo.CurrentCulture, CommonResources.TestCaseFilterFormatException, CommonResources.MissingCloseParenthesis)); } else { Debug.Assert(false, "ProcessOperator called for Unexpected operator."); - throw new FormatException(string.Format(CultureInfo.CurrentCulture, Common.Resources.TestCaseFilterFormatException, string.Empty)); + throw new FormatException(string.Format(CultureInfo.CurrentCulture, CommonResources.TestCaseFilterFormatException, string.Empty)); } } @@ -205,7 +205,7 @@ internal static FilterExpression Parse(string filterString) var invalidInput = Regex.Match(filterString, @"\(\s*\)"); if (invalidInput.Success) { - throw new FormatException(string.Format(CultureInfo.CurrentCulture, Common.Resources.TestCaseFilterFormatException, Common.Resources.EmptyParenthesis)); + throw new FormatException(string.Format(CultureInfo.CurrentCulture, CommonResources.TestCaseFilterFormatException, CommonResources.EmptyParenthesis)); } var tokens = Regex.Split(filterString, filterExpressionSeperatorString); @@ -260,7 +260,7 @@ internal static FilterExpression Parse(string filterString) // If stack is empty at any time, than matching OpenBrace is missing from the expression. if (operatorStack.Count == 0) { - throw new FormatException(string.Format(CultureInfo.CurrentCulture, Common.Resources.TestCaseFilterFormatException, Common.Resources.MissingOpenParenthesis)); + throw new FormatException(string.Format(CultureInfo.CurrentCulture, CommonResources.TestCaseFilterFormatException, CommonResources.MissingOpenParenthesis)); } Operator temp = operatorStack.Pop(); @@ -269,7 +269,7 @@ internal static FilterExpression Parse(string filterString) ProcessOperator(filterStack, temp); if (operatorStack.Count == 0) { - throw new FormatException(string.Format(CultureInfo.CurrentCulture, Common.Resources.TestCaseFilterFormatException, Common.Resources.MissingOpenParenthesis)); + throw new FormatException(string.Format(CultureInfo.CurrentCulture, CommonResources.TestCaseFilterFormatException, CommonResources.MissingOpenParenthesis)); } temp = operatorStack.Pop(); } @@ -292,7 +292,7 @@ internal static FilterExpression Parse(string filterString) if (filterStack.Count != 1) { - throw new FormatException(string.Format(CultureInfo.CurrentCulture, Common.Resources.TestCaseFilterFormatException, Common.Resources.MissingOperator)); + throw new FormatException(string.Format(CultureInfo.CurrentCulture, CommonResources.TestCaseFilterFormatException, CommonResources.MissingOperator)); } return filterStack.Pop(); diff --git a/src/Microsoft.TestPlatform.Common/Logging/TestLoggerManager.cs b/src/Microsoft.TestPlatform.Common/Logging/TestLoggerManager.cs index 7429e7d92a..a2f911e5c9 100644 --- a/src/Microsoft.TestPlatform.Common/Logging/TestLoggerManager.cs +++ b/src/Microsoft.TestPlatform.Common/Logging/TestLoggerManager.cs @@ -2,19 +2,20 @@ namespace Microsoft.VisualStudio.TestPlatform.Common.Logging { - using Microsoft.VisualStudio.TestPlatform.Common.Interfaces; - using Microsoft.VisualStudio.TestPlatform.ObjectModel; - using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client; - using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging; - using Microsoft.VisualStudio.TestPlatform.ObjectModel.Utilities; using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Globalization; - using System.IO; using System.Linq; + + using Microsoft.VisualStudio.TestPlatform.Common.Interfaces; using Microsoft.VisualStudio.TestPlatform.Common.Utilities; - using CommonResources = Microsoft.VisualStudio.TestPlatform.Common.Resources; + using Microsoft.VisualStudio.TestPlatform.ObjectModel; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Utilities; + + using CommonResources = Microsoft.VisualStudio.TestPlatform.Common.Resources.Resources; /// /// Responsible for managing logger extensions and broadcasting results diff --git a/src/Microsoft.TestPlatform.Common/Logging/TestSessionMessageLogger.cs b/src/Microsoft.TestPlatform.Common/Logging/TestSessionMessageLogger.cs index 4507aedfe2..afe36ce62c 100644 --- a/src/Microsoft.TestPlatform.Common/Logging/TestSessionMessageLogger.cs +++ b/src/Microsoft.TestPlatform.Common/Logging/TestSessionMessageLogger.cs @@ -7,6 +7,8 @@ namespace Microsoft.VisualStudio.TestPlatform.Common.Logging using Microsoft.VisualStudio.TestPlatform.ObjectModel; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging; using Microsoft.VisualStudio.TestPlatform.Utilities; + + using ObjectModelCommonResources = Microsoft.VisualStudio.TestPlatform.ObjectModel.Resources.CommonResources; /// /// The test session message logger. @@ -61,7 +63,7 @@ public void SendMessage(TestMessageLevel testMessageLevel, string message) { if (string.IsNullOrWhiteSpace(message)) { - throw new ArgumentException(CommonResources.CannotBeNullOrEmpty, "message"); + throw new ArgumentException(ObjectModelCommonResources.CannotBeNullOrEmpty, "message"); } if (this.TreatTestAdapterErrorsAsWarnings diff --git a/src/Microsoft.TestPlatform.Common/Resources.Designer.cs b/src/Microsoft.TestPlatform.Common/Resources/Resources.Designer.cs similarity index 97% rename from src/Microsoft.TestPlatform.Common/Resources.Designer.cs rename to src/Microsoft.TestPlatform.Common/Resources/Resources.Designer.cs index 120051e1c6..8f44995489 100644 --- a/src/Microsoft.TestPlatform.Common/Resources.Designer.cs +++ b/src/Microsoft.TestPlatform.Common/Resources/Resources.Designer.cs @@ -1,4 +1,4 @@ -//------------------------------------------------------------------------------ +//------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.42000 @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace Microsoft.VisualStudio.TestPlatform.Common { +namespace Microsoft.VisualStudio.TestPlatform.Common.Resources { using System; using System.Reflection; @@ -38,7 +38,7 @@ internal Resources() { public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.TestPlatform.Common.Resources", typeof(Resources).GetTypeInfo().Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.TestPlatform.Common.Resources.Resources", typeof(Resources).GetTypeInfo().Assembly); resourceMan = temp; } return resourceMan; diff --git a/src/Microsoft.TestPlatform.Common/Resources.resx b/src/Microsoft.TestPlatform.Common/Resources/Resources.resx similarity index 100% rename from src/Microsoft.TestPlatform.Common/Resources.resx rename to src/Microsoft.TestPlatform.Common/Resources/Resources.resx diff --git a/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.cs.xlf b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.cs.xlf new file mode 100644 index 0000000000..d78530ab99 --- /dev/null +++ b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.cs.xlf @@ -0,0 +1,112 @@ + + + + + + Diagnostic data adapter message: {0} + Diagnostic data adapter message: {0} + + + + Diagnostic data adapter ('{0}') message: {1}. + Diagnostic data adapter ('{0}') message: {1}. + + + + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + + + + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + + + + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + + + + Error: Empty parenthesis ( ) + Error: Empty parenthesis ( ) + + + + Error: Invalid Condition '{0}' + Error: Invalid Condition '{0}' + + + + Test Extension has an invalid URI '{0}': {1} + Test Extension has an invalid URI '{0}': {1} + + + + Error: Invalid operator '{0}' + Error: Invalid operator '{0}' + + + + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Error: Missing ')' + Error: Missing ')' + + + + Error: Missing '(' + Error: Missing '(' + + + + Error: Missing operand + Error: Missing operand + + + + Missing Operator '|' or '&' + Missing Operator '|' or '&' + + + + The Run Settings have already been loaded. + The Run Settings have already been loaded. + + + + An error occurred while loading the run settings. Error: {0} + An error occurred while loading the run settings. Error: {0} + + + + Invalid settings node specified. The name property of the settings node must be non-empty. + Invalid settings node specified. The name property of the settings node must be non-empty. + + + + An error occurred while initializing the settings provider named '{0}'. Error: {1} + An error occurred while initializing the settings provider named '{0}'. Error: {1} + + + + Settings Provider named '{0}' was not found. The settings can not be loaded. + Settings Provider named '{0}' was not found. The settings can not be loaded. + + + + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.de.xlf b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.de.xlf new file mode 100644 index 0000000000..d513c75b27 --- /dev/null +++ b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.de.xlf @@ -0,0 +1,112 @@ + + + + + + Diagnostic data adapter message: {0} + Diagnostic data adapter message: {0} + + + + Diagnostic data adapter ('{0}') message: {1}. + Diagnostic data adapter ('{0}') message: {1}. + + + + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + + + + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + + + + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + + + + Error: Empty parenthesis ( ) + Error: Empty parenthesis ( ) + + + + Error: Invalid Condition '{0}' + Error: Invalid Condition '{0}' + + + + Test Extension has an invalid URI '{0}': {1} + Test Extension has an invalid URI '{0}': {1} + + + + Error: Invalid operator '{0}' + Error: Invalid operator '{0}' + + + + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Error: Missing ')' + Error: Missing ')' + + + + Error: Missing '(' + Error: Missing '(' + + + + Error: Missing operand + Error: Missing operand + + + + Missing Operator '|' or '&' + Missing Operator '|' or '&' + + + + The Run Settings have already been loaded. + The Run Settings have already been loaded. + + + + An error occurred while loading the run settings. Error: {0} + An error occurred while loading the run settings. Error: {0} + + + + Invalid settings node specified. The name property of the settings node must be non-empty. + Invalid settings node specified. The name property of the settings node must be non-empty. + + + + An error occurred while initializing the settings provider named '{0}'. Error: {1} + An error occurred while initializing the settings provider named '{0}'. Error: {1} + + + + Settings Provider named '{0}' was not found. The settings can not be loaded. + Settings Provider named '{0}' was not found. The settings can not be loaded. + + + + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.es.xlf b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.es.xlf new file mode 100644 index 0000000000..79ff8a76cb --- /dev/null +++ b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.es.xlf @@ -0,0 +1,112 @@ + + + + + + Diagnostic data adapter message: {0} + Diagnostic data adapter message: {0} + + + + Diagnostic data adapter ('{0}') message: {1}. + Diagnostic data adapter ('{0}') message: {1}. + + + + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + + + + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + + + + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + + + + Error: Empty parenthesis ( ) + Error: Empty parenthesis ( ) + + + + Error: Invalid Condition '{0}' + Error: Invalid Condition '{0}' + + + + Test Extension has an invalid URI '{0}': {1} + Test Extension has an invalid URI '{0}': {1} + + + + Error: Invalid operator '{0}' + Error: Invalid operator '{0}' + + + + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Error: Missing ')' + Error: Missing ')' + + + + Error: Missing '(' + Error: Missing '(' + + + + Error: Missing operand + Error: Missing operand + + + + Missing Operator '|' or '&' + Missing Operator '|' or '&' + + + + The Run Settings have already been loaded. + The Run Settings have already been loaded. + + + + An error occurred while loading the run settings. Error: {0} + An error occurred while loading the run settings. Error: {0} + + + + Invalid settings node specified. The name property of the settings node must be non-empty. + Invalid settings node specified. The name property of the settings node must be non-empty. + + + + An error occurred while initializing the settings provider named '{0}'. Error: {1} + An error occurred while initializing the settings provider named '{0}'. Error: {1} + + + + Settings Provider named '{0}' was not found. The settings can not be loaded. + Settings Provider named '{0}' was not found. The settings can not be loaded. + + + + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.fr.xlf b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.fr.xlf new file mode 100644 index 0000000000..7b5db35c61 --- /dev/null +++ b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.fr.xlf @@ -0,0 +1,112 @@ + + + + + + Diagnostic data adapter message: {0} + Diagnostic data adapter message: {0} + + + + Diagnostic data adapter ('{0}') message: {1}. + Diagnostic data adapter ('{0}') message: {1}. + + + + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + + + + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + + + + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + + + + Error: Empty parenthesis ( ) + Error: Empty parenthesis ( ) + + + + Error: Invalid Condition '{0}' + Error: Invalid Condition '{0}' + + + + Test Extension has an invalid URI '{0}': {1} + Test Extension has an invalid URI '{0}': {1} + + + + Error: Invalid operator '{0}' + Error: Invalid operator '{0}' + + + + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Error: Missing ')' + Error: Missing ')' + + + + Error: Missing '(' + Error: Missing '(' + + + + Error: Missing operand + Error: Missing operand + + + + Missing Operator '|' or '&' + Missing Operator '|' or '&' + + + + The Run Settings have already been loaded. + The Run Settings have already been loaded. + + + + An error occurred while loading the run settings. Error: {0} + An error occurred while loading the run settings. Error: {0} + + + + Invalid settings node specified. The name property of the settings node must be non-empty. + Invalid settings node specified. The name property of the settings node must be non-empty. + + + + An error occurred while initializing the settings provider named '{0}'. Error: {1} + An error occurred while initializing the settings provider named '{0}'. Error: {1} + + + + Settings Provider named '{0}' was not found. The settings can not be loaded. + Settings Provider named '{0}' was not found. The settings can not be loaded. + + + + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.it.xlf b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.it.xlf new file mode 100644 index 0000000000..888ea04744 --- /dev/null +++ b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.it.xlf @@ -0,0 +1,112 @@ + + + + + + Diagnostic data adapter message: {0} + Diagnostic data adapter message: {0} + + + + Diagnostic data adapter ('{0}') message: {1}. + Diagnostic data adapter ('{0}') message: {1}. + + + + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + + + + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + + + + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + + + + Error: Empty parenthesis ( ) + Error: Empty parenthesis ( ) + + + + Error: Invalid Condition '{0}' + Error: Invalid Condition '{0}' + + + + Test Extension has an invalid URI '{0}': {1} + Test Extension has an invalid URI '{0}': {1} + + + + Error: Invalid operator '{0}' + Error: Invalid operator '{0}' + + + + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Error: Missing ')' + Error: Missing ')' + + + + Error: Missing '(' + Error: Missing '(' + + + + Error: Missing operand + Error: Missing operand + + + + Missing Operator '|' or '&' + Missing Operator '|' or '&' + + + + The Run Settings have already been loaded. + The Run Settings have already been loaded. + + + + An error occurred while loading the run settings. Error: {0} + An error occurred while loading the run settings. Error: {0} + + + + Invalid settings node specified. The name property of the settings node must be non-empty. + Invalid settings node specified. The name property of the settings node must be non-empty. + + + + An error occurred while initializing the settings provider named '{0}'. Error: {1} + An error occurred while initializing the settings provider named '{0}'. Error: {1} + + + + Settings Provider named '{0}' was not found. The settings can not be loaded. + Settings Provider named '{0}' was not found. The settings can not be loaded. + + + + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.ja.xlf b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.ja.xlf new file mode 100644 index 0000000000..f062aca1a7 --- /dev/null +++ b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.ja.xlf @@ -0,0 +1,112 @@ + + + + + + Diagnostic data adapter message: {0} + Diagnostic data adapter message: {0} + + + + Diagnostic data adapter ('{0}') message: {1}. + Diagnostic data adapter ('{0}') message: {1}. + + + + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + + + + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + + + + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + + + + Error: Empty parenthesis ( ) + Error: Empty parenthesis ( ) + + + + Error: Invalid Condition '{0}' + Error: Invalid Condition '{0}' + + + + Test Extension has an invalid URI '{0}': {1} + Test Extension has an invalid URI '{0}': {1} + + + + Error: Invalid operator '{0}' + Error: Invalid operator '{0}' + + + + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Error: Missing ')' + Error: Missing ')' + + + + Error: Missing '(' + Error: Missing '(' + + + + Error: Missing operand + Error: Missing operand + + + + Missing Operator '|' or '&' + Missing Operator '|' or '&' + + + + The Run Settings have already been loaded. + The Run Settings have already been loaded. + + + + An error occurred while loading the run settings. Error: {0} + An error occurred while loading the run settings. Error: {0} + + + + Invalid settings node specified. The name property of the settings node must be non-empty. + Invalid settings node specified. The name property of the settings node must be non-empty. + + + + An error occurred while initializing the settings provider named '{0}'. Error: {1} + An error occurred while initializing the settings provider named '{0}'. Error: {1} + + + + Settings Provider named '{0}' was not found. The settings can not be loaded. + Settings Provider named '{0}' was not found. The settings can not be loaded. + + + + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.ko.xlf b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.ko.xlf new file mode 100644 index 0000000000..982aa3a7d6 --- /dev/null +++ b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.ko.xlf @@ -0,0 +1,112 @@ + + + + + + Diagnostic data adapter message: {0} + Diagnostic data adapter message: {0} + + + + Diagnostic data adapter ('{0}') message: {1}. + Diagnostic data adapter ('{0}') message: {1}. + + + + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + + + + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + + + + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + + + + Error: Empty parenthesis ( ) + Error: Empty parenthesis ( ) + + + + Error: Invalid Condition '{0}' + Error: Invalid Condition '{0}' + + + + Test Extension has an invalid URI '{0}': {1} + Test Extension has an invalid URI '{0}': {1} + + + + Error: Invalid operator '{0}' + Error: Invalid operator '{0}' + + + + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Error: Missing ')' + Error: Missing ')' + + + + Error: Missing '(' + Error: Missing '(' + + + + Error: Missing operand + Error: Missing operand + + + + Missing Operator '|' or '&' + Missing Operator '|' or '&' + + + + The Run Settings have already been loaded. + The Run Settings have already been loaded. + + + + An error occurred while loading the run settings. Error: {0} + An error occurred while loading the run settings. Error: {0} + + + + Invalid settings node specified. The name property of the settings node must be non-empty. + Invalid settings node specified. The name property of the settings node must be non-empty. + + + + An error occurred while initializing the settings provider named '{0}'. Error: {1} + An error occurred while initializing the settings provider named '{0}'. Error: {1} + + + + Settings Provider named '{0}' was not found. The settings can not be loaded. + Settings Provider named '{0}' was not found. The settings can not be loaded. + + + + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.pl.xlf b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.pl.xlf new file mode 100644 index 0000000000..8136b809f3 --- /dev/null +++ b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.pl.xlf @@ -0,0 +1,112 @@ + + + + + + Diagnostic data adapter message: {0} + Diagnostic data adapter message: {0} + + + + Diagnostic data adapter ('{0}') message: {1}. + Diagnostic data adapter ('{0}') message: {1}. + + + + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + + + + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + + + + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + + + + Error: Empty parenthesis ( ) + Error: Empty parenthesis ( ) + + + + Error: Invalid Condition '{0}' + Error: Invalid Condition '{0}' + + + + Test Extension has an invalid URI '{0}': {1} + Test Extension has an invalid URI '{0}': {1} + + + + Error: Invalid operator '{0}' + Error: Invalid operator '{0}' + + + + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Error: Missing ')' + Error: Missing ')' + + + + Error: Missing '(' + Error: Missing '(' + + + + Error: Missing operand + Error: Missing operand + + + + Missing Operator '|' or '&' + Missing Operator '|' or '&' + + + + The Run Settings have already been loaded. + The Run Settings have already been loaded. + + + + An error occurred while loading the run settings. Error: {0} + An error occurred while loading the run settings. Error: {0} + + + + Invalid settings node specified. The name property of the settings node must be non-empty. + Invalid settings node specified. The name property of the settings node must be non-empty. + + + + An error occurred while initializing the settings provider named '{0}'. Error: {1} + An error occurred while initializing the settings provider named '{0}'. Error: {1} + + + + Settings Provider named '{0}' was not found. The settings can not be loaded. + Settings Provider named '{0}' was not found. The settings can not be loaded. + + + + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.pt-BR.xlf b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.pt-BR.xlf new file mode 100644 index 0000000000..1cd25f2d21 --- /dev/null +++ b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.pt-BR.xlf @@ -0,0 +1,112 @@ + + + + + + Diagnostic data adapter message: {0} + Diagnostic data adapter message: {0} + + + + Diagnostic data adapter ('{0}') message: {1}. + Diagnostic data adapter ('{0}') message: {1}. + + + + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + + + + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + + + + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + + + + Error: Empty parenthesis ( ) + Error: Empty parenthesis ( ) + + + + Error: Invalid Condition '{0}' + Error: Invalid Condition '{0}' + + + + Test Extension has an invalid URI '{0}': {1} + Test Extension has an invalid URI '{0}': {1} + + + + Error: Invalid operator '{0}' + Error: Invalid operator '{0}' + + + + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Error: Missing ')' + Error: Missing ')' + + + + Error: Missing '(' + Error: Missing '(' + + + + Error: Missing operand + Error: Missing operand + + + + Missing Operator '|' or '&' + Missing Operator '|' or '&' + + + + The Run Settings have already been loaded. + The Run Settings have already been loaded. + + + + An error occurred while loading the run settings. Error: {0} + An error occurred while loading the run settings. Error: {0} + + + + Invalid settings node specified. The name property of the settings node must be non-empty. + Invalid settings node specified. The name property of the settings node must be non-empty. + + + + An error occurred while initializing the settings provider named '{0}'. Error: {1} + An error occurred while initializing the settings provider named '{0}'. Error: {1} + + + + Settings Provider named '{0}' was not found. The settings can not be loaded. + Settings Provider named '{0}' was not found. The settings can not be loaded. + + + + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.ru.xlf b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.ru.xlf new file mode 100644 index 0000000000..0304b052ef --- /dev/null +++ b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.ru.xlf @@ -0,0 +1,112 @@ + + + + + + Diagnostic data adapter message: {0} + Diagnostic data adapter message: {0} + + + + Diagnostic data adapter ('{0}') message: {1}. + Diagnostic data adapter ('{0}') message: {1}. + + + + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + + + + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + + + + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + + + + Error: Empty parenthesis ( ) + Error: Empty parenthesis ( ) + + + + Error: Invalid Condition '{0}' + Error: Invalid Condition '{0}' + + + + Test Extension has an invalid URI '{0}': {1} + Test Extension has an invalid URI '{0}': {1} + + + + Error: Invalid operator '{0}' + Error: Invalid operator '{0}' + + + + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Error: Missing ')' + Error: Missing ')' + + + + Error: Missing '(' + Error: Missing '(' + + + + Error: Missing operand + Error: Missing operand + + + + Missing Operator '|' or '&' + Missing Operator '|' or '&' + + + + The Run Settings have already been loaded. + The Run Settings have already been loaded. + + + + An error occurred while loading the run settings. Error: {0} + An error occurred while loading the run settings. Error: {0} + + + + Invalid settings node specified. The name property of the settings node must be non-empty. + Invalid settings node specified. The name property of the settings node must be non-empty. + + + + An error occurred while initializing the settings provider named '{0}'. Error: {1} + An error occurred while initializing the settings provider named '{0}'. Error: {1} + + + + Settings Provider named '{0}' was not found. The settings can not be loaded. + Settings Provider named '{0}' was not found. The settings can not be loaded. + + + + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.tr.xlf b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.tr.xlf new file mode 100644 index 0000000000..f22bc802b6 --- /dev/null +++ b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.tr.xlf @@ -0,0 +1,112 @@ + + + + + + Diagnostic data adapter message: {0} + Diagnostic data adapter message: {0} + + + + Diagnostic data adapter ('{0}') message: {1}. + Diagnostic data adapter ('{0}') message: {1}. + + + + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + + + + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + + + + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + + + + Error: Empty parenthesis ( ) + Error: Empty parenthesis ( ) + + + + Error: Invalid Condition '{0}' + Error: Invalid Condition '{0}' + + + + Test Extension has an invalid URI '{0}': {1} + Test Extension has an invalid URI '{0}': {1} + + + + Error: Invalid operator '{0}' + Error: Invalid operator '{0}' + + + + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Error: Missing ')' + Error: Missing ')' + + + + Error: Missing '(' + Error: Missing '(' + + + + Error: Missing operand + Error: Missing operand + + + + Missing Operator '|' or '&' + Missing Operator '|' or '&' + + + + The Run Settings have already been loaded. + The Run Settings have already been loaded. + + + + An error occurred while loading the run settings. Error: {0} + An error occurred while loading the run settings. Error: {0} + + + + Invalid settings node specified. The name property of the settings node must be non-empty. + Invalid settings node specified. The name property of the settings node must be non-empty. + + + + An error occurred while initializing the settings provider named '{0}'. Error: {1} + An error occurred while initializing the settings provider named '{0}'. Error: {1} + + + + Settings Provider named '{0}' was not found. The settings can not be loaded. + Settings Provider named '{0}' was not found. The settings can not be loaded. + + + + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.zh-Hans.xlf b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.zh-Hans.xlf new file mode 100644 index 0000000000..71102fa624 --- /dev/null +++ b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.zh-Hans.xlf @@ -0,0 +1,112 @@ + + + + + + Diagnostic data adapter message: {0} + Diagnostic data adapter message: {0} + + + + Diagnostic data adapter ('{0}') message: {1}. + Diagnostic data adapter ('{0}') message: {1}. + + + + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + + + + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + + + + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + + + + Error: Empty parenthesis ( ) + Error: Empty parenthesis ( ) + + + + Error: Invalid Condition '{0}' + Error: Invalid Condition '{0}' + + + + Test Extension has an invalid URI '{0}': {1} + Test Extension has an invalid URI '{0}': {1} + + + + Error: Invalid operator '{0}' + Error: Invalid operator '{0}' + + + + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Error: Missing ')' + Error: Missing ')' + + + + Error: Missing '(' + Error: Missing '(' + + + + Error: Missing operand + Error: Missing operand + + + + Missing Operator '|' or '&' + Missing Operator '|' or '&' + + + + The Run Settings have already been loaded. + The Run Settings have already been loaded. + + + + An error occurred while loading the run settings. Error: {0} + An error occurred while loading the run settings. Error: {0} + + + + Invalid settings node specified. The name property of the settings node must be non-empty. + Invalid settings node specified. The name property of the settings node must be non-empty. + + + + An error occurred while initializing the settings provider named '{0}'. Error: {1} + An error occurred while initializing the settings provider named '{0}'. Error: {1} + + + + Settings Provider named '{0}' was not found. The settings can not be loaded. + Settings Provider named '{0}' was not found. The settings can not be loaded. + + + + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.zh-Hant.xlf b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.zh-Hant.xlf new file mode 100644 index 0000000000..57487d48e7 --- /dev/null +++ b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.zh-Hant.xlf @@ -0,0 +1,112 @@ + + + + + + Diagnostic data adapter message: {0} + Diagnostic data adapter message: {0} + + + + Diagnostic data adapter ('{0}') message: {1}. + Diagnostic data adapter ('{0}') message: {1}. + + + + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + + + + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + + + + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + + + + Error: Empty parenthesis ( ) + Error: Empty parenthesis ( ) + + + + Error: Invalid Condition '{0}' + Error: Invalid Condition '{0}' + + + + Test Extension has an invalid URI '{0}': {1} + Test Extension has an invalid URI '{0}': {1} + + + + Error: Invalid operator '{0}' + Error: Invalid operator '{0}' + + + + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Error: Missing ')' + Error: Missing ')' + + + + Error: Missing '(' + Error: Missing '(' + + + + Error: Missing operand + Error: Missing operand + + + + Missing Operator '|' or '&' + Missing Operator '|' or '&' + + + + The Run Settings have already been loaded. + The Run Settings have already been loaded. + + + + An error occurred while loading the run settings. Error: {0} + An error occurred while loading the run settings. Error: {0} + + + + Invalid settings node specified. The name property of the settings node must be non-empty. + Invalid settings node specified. The name property of the settings node must be non-empty. + + + + An error occurred while initializing the settings provider named '{0}'. Error: {1} + An error occurred while initializing the settings provider named '{0}'. Error: {1} + + + + Settings Provider named '{0}' was not found. The settings can not be loaded. + Settings Provider named '{0}' was not found. The settings can not be loaded. + + + + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Common/RunSettings.cs b/src/Microsoft.TestPlatform.Common/RunSettings.cs index 4258e71c4e..ec2f78de22 100644 --- a/src/Microsoft.TestPlatform.Common/RunSettings.cs +++ b/src/Microsoft.TestPlatform.Common/RunSettings.cs @@ -18,6 +18,9 @@ namespace Microsoft.VisualStudio.TestPlatform.Common using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Utilities; + using CommonResources = Microsoft.VisualStudio.TestPlatform.Common.Resources.Resources; + using ObjectModelCommonResources = Microsoft.VisualStudio.TestPlatform.ObjectModel.Resources.CommonResources; + /// /// Used for loading settings for a run. /// @@ -66,7 +69,7 @@ public ISettingsProvider GetSettings(string settingsName) { if (StringUtilities.IsNullOrWhiteSpace(settingsName)) { - throw new ArgumentException(CommonResources.CannotBeNullOrEmpty, "settingsName"); + throw new ArgumentException(ObjectModelCommonResources.CannotBeNullOrEmpty, "settingsName"); } // Try and lookup the settings provider. @@ -91,7 +94,7 @@ public void LoadSettingsXml(string settings) { if (StringUtilities.IsNullOrWhiteSpace(settings)) { - throw new ArgumentException(CommonResources.CannotBeNullOrEmpty, settings); + throw new ArgumentException(ObjectModelCommonResources.CannotBeNullOrEmpty, settings); } using (var stringReader = new StringReader(settings)) @@ -140,7 +143,7 @@ private void ValidateAndSaveSettings(XmlReader reader) throw new SettingsException( string.Format( CultureInfo.CurrentCulture, - Resources.RunSettingsParseError, + CommonResources.RunSettingsParseError, e.Message), e); } @@ -155,7 +158,7 @@ private void ReadRunSettings(XmlReader reader) // If settings have already been loaded, throw. if (this.isSettingsLoaded) { - throw new InvalidOperationException(Resources.RunSettingsAlreadyLoaded); + throw new InvalidOperationException(CommonResources.RunSettingsAlreadyLoaded); } this.isSettingsLoaded = true; @@ -185,7 +188,7 @@ private void ReadRunSettings(XmlReader reader) throw new SettingsException( string.Format( CultureInfo.CurrentCulture, - Resources.RunSettingsParseError, + CommonResources.RunSettingsParseError, e.Message), e); } @@ -207,7 +210,7 @@ private void LoadSection(XmlReader reader, SettingsProviderExtensionManager sett { TestSessionMessageLogger.Instance.SendMessage( TestMessageLevel.Error, - string.Format(CultureInfo.CurrentCulture, Resources.DuplicateSettingsProvided, reader.Name)); + string.Format(CultureInfo.CurrentCulture, CommonResources.DuplicateSettingsProvided, reader.Name)); return; } @@ -228,7 +231,7 @@ private void LoadSection(XmlReader reader, SettingsProviderExtensionManager sett provider = CreateLazyThrower( string.Format( CultureInfo.CurrentCulture, - Resources.SettingsProviderInitializationError, + CommonResources.SettingsProviderInitializationError, provider.Metadata.SettingsName, e.Message), provider.Metadata, @@ -242,7 +245,7 @@ private void LoadSection(XmlReader reader, SettingsProviderExtensionManager sett var message = string.Format( CultureInfo.CurrentCulture, - Resources.SettingsProviderNotFound, + CommonResources.SettingsProviderNotFound, metadata.SettingsName); provider = CreateLazyThrower(message, metadata); diff --git a/src/Microsoft.TestPlatform.Common/SettingsProvider/SettingsProviderExtensionManager.cs b/src/Microsoft.TestPlatform.Common/SettingsProvider/SettingsProviderExtensionManager.cs index 1ddbb171df..b019c182d4 100644 --- a/src/Microsoft.TestPlatform.Common/SettingsProvider/SettingsProviderExtensionManager.cs +++ b/src/Microsoft.TestPlatform.Common/SettingsProvider/SettingsProviderExtensionManager.cs @@ -16,6 +16,9 @@ namespace Microsoft.VisualStudio.TestPlatform.Common.SettingsProvider using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging; using Microsoft.VisualStudio.TestPlatform.Utilities; + using CommonResources = Microsoft.VisualStudio.TestPlatform.Common.Resources.Resources; + using ObjectModelCommonResources = Microsoft.VisualStudio.TestPlatform.ObjectModel.Resources.CommonResources; + /// /// Manages the settings provider extensions. /// @@ -181,7 +184,7 @@ internal LazyExtension GetSett { if (string.IsNullOrWhiteSpace(settingsName)) { - throw new ArgumentException(CommonResources.CannotBeNullOrEmpty, "settingsName"); + throw new ArgumentException(ObjectModelCommonResources.CannotBeNullOrEmpty, "settingsName"); } LazyExtension settingsProvider; @@ -208,7 +211,7 @@ private void PopulateMap() TestMessageLevel.Error, string.Format( CultureInfo.CurrentUICulture, - Common.Resources.DuplicateSettingsName, + CommonResources.DuplicateSettingsName, settingsProvider.Metadata.SettingsName)); } else diff --git a/src/Microsoft.TestPlatform.Common/project.json b/src/Microsoft.TestPlatform.Common/project.json index cb924495c3..32e51fc756 100644 --- a/src/Microsoft.TestPlatform.Common/project.json +++ b/src/Microsoft.TestPlatform.Common/project.json @@ -4,7 +4,8 @@ "outputName": "Microsoft.VisualStudio.TestPlatform.Common", "delaySign": true, "keyFile": "../../scripts/key.snk", - "warningsAsErrors": true + "warningsAsErrors": true, + "embed": [ "Resources/*.resx" ] }, "dependencies": { diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/Resources.Designer.cs b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/Resources.Designer.cs similarity index 97% rename from src/Microsoft.TestPlatform.CommunicationUtilities/Resources.Designer.cs rename to src/Microsoft.TestPlatform.CommunicationUtilities/Resources/Resources.Designer.cs index da33c7aa8a..cdb89d1fb2 100644 --- a/src/Microsoft.TestPlatform.CommunicationUtilities/Resources.Designer.cs +++ b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/Resources.Designer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace Microsoft.VisualStudio.TestPlatform.CommunicationUtilities { +namespace Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.Resources { using System; using System.Reflection; @@ -38,7 +38,7 @@ internal Resources() { public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.TestPlatform.CommunicationUtilities.Resources", typeof(Resources).GetTypeInfo().Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.TestPlatform.CommunicationUtilities.Resources.Resources", typeof(Resources).GetTypeInfo().Assembly); resourceMan = temp; } return resourceMan; diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/Resources.resx b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/Resources.resx similarity index 100% rename from src/Microsoft.TestPlatform.CommunicationUtilities/Resources.resx rename to src/Microsoft.TestPlatform.CommunicationUtilities/Resources/Resources.resx diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.cs.xlf b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.cs.xlf new file mode 100644 index 0000000000..8e558642a2 --- /dev/null +++ b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.cs.xlf @@ -0,0 +1,27 @@ + + + + + + The active Test Run was aborted. + The active Test Run was aborted. + + + + An existing connection was forcibly closed by the remote host. + An existing connection was forcibly closed by the remote host. + + + + The active Test Discovery was aborted. + The active Test Discovery was aborted. + + + + Unable to communicate with test execution process. + Unable to communicate with test execution process. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.de.xlf b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.de.xlf new file mode 100644 index 0000000000..02f10d4d69 --- /dev/null +++ b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.de.xlf @@ -0,0 +1,27 @@ + + + + + + The active Test Run was aborted. + The active Test Run was aborted. + + + + An existing connection was forcibly closed by the remote host. + An existing connection was forcibly closed by the remote host. + + + + The active Test Discovery was aborted. + The active Test Discovery was aborted. + + + + Unable to communicate with test execution process. + Unable to communicate with test execution process. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.es.xlf b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.es.xlf new file mode 100644 index 0000000000..c04bdf92a5 --- /dev/null +++ b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.es.xlf @@ -0,0 +1,27 @@ + + + + + + The active Test Run was aborted. + The active Test Run was aborted. + + + + An existing connection was forcibly closed by the remote host. + An existing connection was forcibly closed by the remote host. + + + + The active Test Discovery was aborted. + The active Test Discovery was aborted. + + + + Unable to communicate with test execution process. + Unable to communicate with test execution process. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.fr.xlf b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.fr.xlf new file mode 100644 index 0000000000..f4a14529d8 --- /dev/null +++ b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.fr.xlf @@ -0,0 +1,27 @@ + + + + + + The active Test Run was aborted. + The active Test Run was aborted. + + + + An existing connection was forcibly closed by the remote host. + An existing connection was forcibly closed by the remote host. + + + + The active Test Discovery was aborted. + The active Test Discovery was aborted. + + + + Unable to communicate with test execution process. + Unable to communicate with test execution process. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.it.xlf b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.it.xlf new file mode 100644 index 0000000000..cb9d91fbc2 --- /dev/null +++ b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.it.xlf @@ -0,0 +1,27 @@ + + + + + + The active Test Run was aborted. + The active Test Run was aborted. + + + + An existing connection was forcibly closed by the remote host. + An existing connection was forcibly closed by the remote host. + + + + The active Test Discovery was aborted. + The active Test Discovery was aborted. + + + + Unable to communicate with test execution process. + Unable to communicate with test execution process. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.ja.xlf b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.ja.xlf new file mode 100644 index 0000000000..756921912e --- /dev/null +++ b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.ja.xlf @@ -0,0 +1,27 @@ + + + + + + The active Test Run was aborted. + The active Test Run was aborted. + + + + An existing connection was forcibly closed by the remote host. + An existing connection was forcibly closed by the remote host. + + + + The active Test Discovery was aborted. + The active Test Discovery was aborted. + + + + Unable to communicate with test execution process. + Unable to communicate with test execution process. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.ko.xlf b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.ko.xlf new file mode 100644 index 0000000000..f8ceabd64f --- /dev/null +++ b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.ko.xlf @@ -0,0 +1,27 @@ + + + + + + The active Test Run was aborted. + The active Test Run was aborted. + + + + An existing connection was forcibly closed by the remote host. + An existing connection was forcibly closed by the remote host. + + + + The active Test Discovery was aborted. + The active Test Discovery was aborted. + + + + Unable to communicate with test execution process. + Unable to communicate with test execution process. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.pl.xlf b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.pl.xlf new file mode 100644 index 0000000000..d387ea8c95 --- /dev/null +++ b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.pl.xlf @@ -0,0 +1,27 @@ + + + + + + The active Test Run was aborted. + The active Test Run was aborted. + + + + An existing connection was forcibly closed by the remote host. + An existing connection was forcibly closed by the remote host. + + + + The active Test Discovery was aborted. + The active Test Discovery was aborted. + + + + Unable to communicate with test execution process. + Unable to communicate with test execution process. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.pt-BR.xlf b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.pt-BR.xlf new file mode 100644 index 0000000000..61bde08185 --- /dev/null +++ b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.pt-BR.xlf @@ -0,0 +1,27 @@ + + + + + + The active Test Run was aborted. + The active Test Run was aborted. + + + + An existing connection was forcibly closed by the remote host. + An existing connection was forcibly closed by the remote host. + + + + The active Test Discovery was aborted. + The active Test Discovery was aborted. + + + + Unable to communicate with test execution process. + Unable to communicate with test execution process. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.ru.xlf b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.ru.xlf new file mode 100644 index 0000000000..8dc9f28a72 --- /dev/null +++ b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.ru.xlf @@ -0,0 +1,27 @@ + + + + + + The active Test Run was aborted. + The active Test Run was aborted. + + + + An existing connection was forcibly closed by the remote host. + An existing connection was forcibly closed by the remote host. + + + + The active Test Discovery was aborted. + The active Test Discovery was aborted. + + + + Unable to communicate with test execution process. + Unable to communicate with test execution process. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.tr.xlf b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.tr.xlf new file mode 100644 index 0000000000..7fbf81930b --- /dev/null +++ b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.tr.xlf @@ -0,0 +1,27 @@ + + + + + + The active Test Run was aborted. + The active Test Run was aborted. + + + + An existing connection was forcibly closed by the remote host. + An existing connection was forcibly closed by the remote host. + + + + The active Test Discovery was aborted. + The active Test Discovery was aborted. + + + + Unable to communicate with test execution process. + Unable to communicate with test execution process. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.zh-Hans.xlf b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.zh-Hans.xlf new file mode 100644 index 0000000000..3282762901 --- /dev/null +++ b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.zh-Hans.xlf @@ -0,0 +1,27 @@ + + + + + + The active Test Run was aborted. + The active Test Run was aborted. + + + + An existing connection was forcibly closed by the remote host. + An existing connection was forcibly closed by the remote host. + + + + The active Test Discovery was aborted. + The active Test Discovery was aborted. + + + + Unable to communicate with test execution process. + Unable to communicate with test execution process. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.zh-Hant.xlf b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.zh-Hant.xlf new file mode 100644 index 0000000000..141d5083c9 --- /dev/null +++ b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.zh-Hant.xlf @@ -0,0 +1,27 @@ + + + + + + The active Test Run was aborted. + The active Test Run was aborted. + + + + An existing connection was forcibly closed by the remote host. + An existing connection was forcibly closed by the remote host. + + + + The active Test Discovery was aborted. + The active Test Discovery was aborted. + + + + Unable to communicate with test execution process. + Unable to communicate with test execution process. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/TestRequestSender.cs b/src/Microsoft.TestPlatform.CommunicationUtilities/TestRequestSender.cs index 746e53e67e..8ae430deca 100644 --- a/src/Microsoft.TestPlatform.CommunicationUtilities/TestRequestSender.cs +++ b/src/Microsoft.TestPlatform.CommunicationUtilities/TestRequestSender.cs @@ -1,4 +1,5 @@ // Copyright (c) Microsoft. All rights reserved. + namespace Microsoft.VisualStudio.TestPlatform.CommunicationUtilities { using System; @@ -13,6 +14,8 @@ namespace Microsoft.VisualStudio.TestPlatform.CommunicationUtilities using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging; + using CommonResources = Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.Resources.Resources; + /// /// Utility class that facilitates the IPC comunication. Acts as server. /// @@ -276,10 +279,10 @@ private void OnTestRunAbort(ITestRunEventsHandler testRunEventsHandler, Exceptio EqtTrace.Error("Server: TestExecution: Aborting test run because {0}", exception); // log console message to vstest console - testRunEventsHandler.HandleLogMessage(TestMessageLevel.Error, Resources.AbortedTestRun); + testRunEventsHandler.HandleLogMessage(TestMessageLevel.Error, CommonResources.AbortedTestRun); // log console message to vstest console wrapper - var testMessagePayload = new TestMessagePayload { MessageLevel = TestMessageLevel.Error, Message = Resources.AbortedTestRun }; + var testMessagePayload = new TestMessagePayload { MessageLevel = TestMessageLevel.Error, Message = CommonResources.AbortedTestRun }; var rawMessage = this.dataSerializer.SerializePayload(MessageType.TestMessage, testMessagePayload); testRunEventsHandler.HandleRawMessage(rawMessage); @@ -298,10 +301,10 @@ private void OnTestRunAbort(ITestRunEventsHandler testRunEventsHandler, Exceptio private void OnDiscoveryAbort(ITestDiscoveryEventsHandler eventHandler) { // Log to vstest console - eventHandler.HandleLogMessage(TestMessageLevel.Error, Resources.AbortedTestDiscovery); + eventHandler.HandleLogMessage(TestMessageLevel.Error, CommonResources.AbortedTestDiscovery); // Log to vs ide test output - var testMessagePayload = new TestMessagePayload { MessageLevel = TestMessageLevel.Error, Message = Resources.AbortedTestDiscovery }; + var testMessagePayload = new TestMessagePayload { MessageLevel = TestMessageLevel.Error, Message = CommonResources.AbortedTestDiscovery }; var rawMessage = this.dataSerializer.SerializePayload(MessageType.TestMessage, testMessagePayload); eventHandler.HandleRawMessage(rawMessage); @@ -349,7 +352,7 @@ private string TryReceiveRawMessage() if (message == null) { EqtTrace.Error("Unable to receive message from testhost"); - throw new IOException(Resources.UnableToCommunicateToTestHost); + throw new IOException(CommonResources.UnableToCommunicateToTestHost); } return message; diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/project.json b/src/Microsoft.TestPlatform.CommunicationUtilities/project.json index 6fadf142bd..27ca258bf6 100644 --- a/src/Microsoft.TestPlatform.CommunicationUtilities/project.json +++ b/src/Microsoft.TestPlatform.CommunicationUtilities/project.json @@ -3,7 +3,8 @@ "buildOptions": { "delaySign": true, "keyFile": "../../scripts/key.snk", - "warningsAsErrors": true + "warningsAsErrors": true, + "embed": [ "Resources/*.resx" ] }, "dependencies": { diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Output/OutputUtilities.cs b/src/Microsoft.TestPlatform.CoreUtilities/Output/OutputUtilities.cs index f049232d49..551982cbd2 100644 --- a/src/Microsoft.TestPlatform.CoreUtilities/Output/OutputUtilities.cs +++ b/src/Microsoft.TestPlatform.CoreUtilities/Output/OutputUtilities.cs @@ -7,6 +7,7 @@ namespace Microsoft.VisualStudio.TestPlatform.Utilities using System.Globalization; using Microsoft.VisualStudio.TestPlatform.CoreUtilities; + using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Resources; /// /// Utility Methods for sending output to IOutput. diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Resources.Designer.cs b/src/Microsoft.TestPlatform.CoreUtilities/Resources/Resources.Designer.cs similarity index 97% rename from src/Microsoft.TestPlatform.CoreUtilities/Resources.Designer.cs rename to src/Microsoft.TestPlatform.CoreUtilities/Resources/Resources.Designer.cs index a950fd8033..6a0a66e2a9 100644 --- a/src/Microsoft.TestPlatform.CoreUtilities/Resources.Designer.cs +++ b/src/Microsoft.TestPlatform.CoreUtilities/Resources/Resources.Designer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace Microsoft.VisualStudio.TestPlatform.CoreUtilities { +namespace Microsoft.VisualStudio.TestPlatform.CoreUtilities.Resources { using System; using System.Reflection; @@ -38,7 +38,7 @@ internal Resources() { public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.TestPlatform.CoreUtilities.Resources", typeof(Resources).GetTypeInfo().Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.TestPlatform.CoreUtilities.Resources.Resources", typeof(Resources).GetTypeInfo().Assembly); resourceMan = temp; } return resourceMan; diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Resources.resx b/src/Microsoft.TestPlatform.CoreUtilities/Resources/Resources.resx similarity index 100% rename from src/Microsoft.TestPlatform.CoreUtilities/Resources.resx rename to src/Microsoft.TestPlatform.CoreUtilities/Resources/Resources.resx diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.cs.xlf b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.cs.xlf new file mode 100644 index 0000000000..08c6f348c8 --- /dev/null +++ b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.cs.xlf @@ -0,0 +1,82 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Error: {0} + Error: {0} + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + The specified argument cannot be empty. + The specified argument cannot be empty. + + + + The specified argument cannot be negative. + The specified argument cannot be negative. + + + + The specified argument must have the following type: {0}. + The specified argument must have the following type: {0}. + + + + The specified argument has the following property, which cannot be an empty string: {0}. + The specified argument has the following property, which cannot be an empty string: {0}. + + + + The specified argument has the following property, which cannot be negative: {0}. + The specified argument has the following property, which cannot be negative: {0}. + + + + The specified argument has the following property, which cannot be null: {0}. + The specified argument has the following property, which cannot be null: {0}. + + + + The specified argument has the following property: {0}. This property must have the following type: {1}. + The specified argument has the following property: {0}. This property must have the following type: {1}. + + + + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + + + + The {0} queue has already been disposed. + The {0} queue has already been disposed. + + + + The {0} queue cannot be disposed while paused. + The {0} queue cannot be disposed while paused. + + + + Error getting process name. + Error getting process name. + + + + + diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.de.xlf b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.de.xlf new file mode 100644 index 0000000000..4c51e7909d --- /dev/null +++ b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.de.xlf @@ -0,0 +1,82 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Error: {0} + Error: {0} + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + The specified argument cannot be empty. + The specified argument cannot be empty. + + + + The specified argument cannot be negative. + The specified argument cannot be negative. + + + + The specified argument must have the following type: {0}. + The specified argument must have the following type: {0}. + + + + The specified argument has the following property, which cannot be an empty string: {0}. + The specified argument has the following property, which cannot be an empty string: {0}. + + + + The specified argument has the following property, which cannot be negative: {0}. + The specified argument has the following property, which cannot be negative: {0}. + + + + The specified argument has the following property, which cannot be null: {0}. + The specified argument has the following property, which cannot be null: {0}. + + + + The specified argument has the following property: {0}. This property must have the following type: {1}. + The specified argument has the following property: {0}. This property must have the following type: {1}. + + + + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + + + + The {0} queue has already been disposed. + The {0} queue has already been disposed. + + + + The {0} queue cannot be disposed while paused. + The {0} queue cannot be disposed while paused. + + + + Error getting process name. + Error getting process name. + + + + + diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.es.xlf b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.es.xlf new file mode 100644 index 0000000000..e66db20420 --- /dev/null +++ b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.es.xlf @@ -0,0 +1,82 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Error: {0} + Error: {0} + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + The specified argument cannot be empty. + The specified argument cannot be empty. + + + + The specified argument cannot be negative. + The specified argument cannot be negative. + + + + The specified argument must have the following type: {0}. + The specified argument must have the following type: {0}. + + + + The specified argument has the following property, which cannot be an empty string: {0}. + The specified argument has the following property, which cannot be an empty string: {0}. + + + + The specified argument has the following property, which cannot be negative: {0}. + The specified argument has the following property, which cannot be negative: {0}. + + + + The specified argument has the following property, which cannot be null: {0}. + The specified argument has the following property, which cannot be null: {0}. + + + + The specified argument has the following property: {0}. This property must have the following type: {1}. + The specified argument has the following property: {0}. This property must have the following type: {1}. + + + + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + + + + The {0} queue has already been disposed. + The {0} queue has already been disposed. + + + + The {0} queue cannot be disposed while paused. + The {0} queue cannot be disposed while paused. + + + + Error getting process name. + Error getting process name. + + + + + diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.fr.xlf b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.fr.xlf new file mode 100644 index 0000000000..f3200948ab --- /dev/null +++ b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.fr.xlf @@ -0,0 +1,82 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Error: {0} + Error: {0} + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + The specified argument cannot be empty. + The specified argument cannot be empty. + + + + The specified argument cannot be negative. + The specified argument cannot be negative. + + + + The specified argument must have the following type: {0}. + The specified argument must have the following type: {0}. + + + + The specified argument has the following property, which cannot be an empty string: {0}. + The specified argument has the following property, which cannot be an empty string: {0}. + + + + The specified argument has the following property, which cannot be negative: {0}. + The specified argument has the following property, which cannot be negative: {0}. + + + + The specified argument has the following property, which cannot be null: {0}. + The specified argument has the following property, which cannot be null: {0}. + + + + The specified argument has the following property: {0}. This property must have the following type: {1}. + The specified argument has the following property: {0}. This property must have the following type: {1}. + + + + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + + + + The {0} queue has already been disposed. + The {0} queue has already been disposed. + + + + The {0} queue cannot be disposed while paused. + The {0} queue cannot be disposed while paused. + + + + Error getting process name. + Error getting process name. + + + + + diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.it.xlf b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.it.xlf new file mode 100644 index 0000000000..2760041262 --- /dev/null +++ b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.it.xlf @@ -0,0 +1,82 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Error: {0} + Error: {0} + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + The specified argument cannot be empty. + The specified argument cannot be empty. + + + + The specified argument cannot be negative. + The specified argument cannot be negative. + + + + The specified argument must have the following type: {0}. + The specified argument must have the following type: {0}. + + + + The specified argument has the following property, which cannot be an empty string: {0}. + The specified argument has the following property, which cannot be an empty string: {0}. + + + + The specified argument has the following property, which cannot be negative: {0}. + The specified argument has the following property, which cannot be negative: {0}. + + + + The specified argument has the following property, which cannot be null: {0}. + The specified argument has the following property, which cannot be null: {0}. + + + + The specified argument has the following property: {0}. This property must have the following type: {1}. + The specified argument has the following property: {0}. This property must have the following type: {1}. + + + + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + + + + The {0} queue has already been disposed. + The {0} queue has already been disposed. + + + + The {0} queue cannot be disposed while paused. + The {0} queue cannot be disposed while paused. + + + + Error getting process name. + Error getting process name. + + + + + diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.ja.xlf b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.ja.xlf new file mode 100644 index 0000000000..f16b81afa0 --- /dev/null +++ b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.ja.xlf @@ -0,0 +1,82 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Error: {0} + Error: {0} + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + The specified argument cannot be empty. + The specified argument cannot be empty. + + + + The specified argument cannot be negative. + The specified argument cannot be negative. + + + + The specified argument must have the following type: {0}. + The specified argument must have the following type: {0}. + + + + The specified argument has the following property, which cannot be an empty string: {0}. + The specified argument has the following property, which cannot be an empty string: {0}. + + + + The specified argument has the following property, which cannot be negative: {0}. + The specified argument has the following property, which cannot be negative: {0}. + + + + The specified argument has the following property, which cannot be null: {0}. + The specified argument has the following property, which cannot be null: {0}. + + + + The specified argument has the following property: {0}. This property must have the following type: {1}. + The specified argument has the following property: {0}. This property must have the following type: {1}. + + + + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + + + + The {0} queue has already been disposed. + The {0} queue has already been disposed. + + + + The {0} queue cannot be disposed while paused. + The {0} queue cannot be disposed while paused. + + + + Error getting process name. + Error getting process name. + + + + + diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.ko.xlf b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.ko.xlf new file mode 100644 index 0000000000..419277813c --- /dev/null +++ b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.ko.xlf @@ -0,0 +1,82 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Error: {0} + Error: {0} + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + The specified argument cannot be empty. + The specified argument cannot be empty. + + + + The specified argument cannot be negative. + The specified argument cannot be negative. + + + + The specified argument must have the following type: {0}. + The specified argument must have the following type: {0}. + + + + The specified argument has the following property, which cannot be an empty string: {0}. + The specified argument has the following property, which cannot be an empty string: {0}. + + + + The specified argument has the following property, which cannot be negative: {0}. + The specified argument has the following property, which cannot be negative: {0}. + + + + The specified argument has the following property, which cannot be null: {0}. + The specified argument has the following property, which cannot be null: {0}. + + + + The specified argument has the following property: {0}. This property must have the following type: {1}. + The specified argument has the following property: {0}. This property must have the following type: {1}. + + + + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + + + + The {0} queue has already been disposed. + The {0} queue has already been disposed. + + + + The {0} queue cannot be disposed while paused. + The {0} queue cannot be disposed while paused. + + + + Error getting process name. + Error getting process name. + + + + + diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.pl.xlf b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.pl.xlf new file mode 100644 index 0000000000..9c8c535ad8 --- /dev/null +++ b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.pl.xlf @@ -0,0 +1,82 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Error: {0} + Error: {0} + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + The specified argument cannot be empty. + The specified argument cannot be empty. + + + + The specified argument cannot be negative. + The specified argument cannot be negative. + + + + The specified argument must have the following type: {0}. + The specified argument must have the following type: {0}. + + + + The specified argument has the following property, which cannot be an empty string: {0}. + The specified argument has the following property, which cannot be an empty string: {0}. + + + + The specified argument has the following property, which cannot be negative: {0}. + The specified argument has the following property, which cannot be negative: {0}. + + + + The specified argument has the following property, which cannot be null: {0}. + The specified argument has the following property, which cannot be null: {0}. + + + + The specified argument has the following property: {0}. This property must have the following type: {1}. + The specified argument has the following property: {0}. This property must have the following type: {1}. + + + + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + + + + The {0} queue has already been disposed. + The {0} queue has already been disposed. + + + + The {0} queue cannot be disposed while paused. + The {0} queue cannot be disposed while paused. + + + + Error getting process name. + Error getting process name. + + + + + diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.pt-BR.xlf b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.pt-BR.xlf new file mode 100644 index 0000000000..9da60a566f --- /dev/null +++ b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.pt-BR.xlf @@ -0,0 +1,82 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Error: {0} + Error: {0} + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + The specified argument cannot be empty. + The specified argument cannot be empty. + + + + The specified argument cannot be negative. + The specified argument cannot be negative. + + + + The specified argument must have the following type: {0}. + The specified argument must have the following type: {0}. + + + + The specified argument has the following property, which cannot be an empty string: {0}. + The specified argument has the following property, which cannot be an empty string: {0}. + + + + The specified argument has the following property, which cannot be negative: {0}. + The specified argument has the following property, which cannot be negative: {0}. + + + + The specified argument has the following property, which cannot be null: {0}. + The specified argument has the following property, which cannot be null: {0}. + + + + The specified argument has the following property: {0}. This property must have the following type: {1}. + The specified argument has the following property: {0}. This property must have the following type: {1}. + + + + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + + + + The {0} queue has already been disposed. + The {0} queue has already been disposed. + + + + The {0} queue cannot be disposed while paused. + The {0} queue cannot be disposed while paused. + + + + Error getting process name. + Error getting process name. + + + + + diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.ru.xlf b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.ru.xlf new file mode 100644 index 0000000000..0b5ca89a8c --- /dev/null +++ b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.ru.xlf @@ -0,0 +1,82 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Error: {0} + Error: {0} + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + The specified argument cannot be empty. + The specified argument cannot be empty. + + + + The specified argument cannot be negative. + The specified argument cannot be negative. + + + + The specified argument must have the following type: {0}. + The specified argument must have the following type: {0}. + + + + The specified argument has the following property, which cannot be an empty string: {0}. + The specified argument has the following property, which cannot be an empty string: {0}. + + + + The specified argument has the following property, which cannot be negative: {0}. + The specified argument has the following property, which cannot be negative: {0}. + + + + The specified argument has the following property, which cannot be null: {0}. + The specified argument has the following property, which cannot be null: {0}. + + + + The specified argument has the following property: {0}. This property must have the following type: {1}. + The specified argument has the following property: {0}. This property must have the following type: {1}. + + + + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + + + + The {0} queue has already been disposed. + The {0} queue has already been disposed. + + + + The {0} queue cannot be disposed while paused. + The {0} queue cannot be disposed while paused. + + + + Error getting process name. + Error getting process name. + + + + + diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.tr.xlf b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.tr.xlf new file mode 100644 index 0000000000..8ba39ab4d4 --- /dev/null +++ b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.tr.xlf @@ -0,0 +1,82 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Error: {0} + Error: {0} + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + The specified argument cannot be empty. + The specified argument cannot be empty. + + + + The specified argument cannot be negative. + The specified argument cannot be negative. + + + + The specified argument must have the following type: {0}. + The specified argument must have the following type: {0}. + + + + The specified argument has the following property, which cannot be an empty string: {0}. + The specified argument has the following property, which cannot be an empty string: {0}. + + + + The specified argument has the following property, which cannot be negative: {0}. + The specified argument has the following property, which cannot be negative: {0}. + + + + The specified argument has the following property, which cannot be null: {0}. + The specified argument has the following property, which cannot be null: {0}. + + + + The specified argument has the following property: {0}. This property must have the following type: {1}. + The specified argument has the following property: {0}. This property must have the following type: {1}. + + + + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + + + + The {0} queue has already been disposed. + The {0} queue has already been disposed. + + + + The {0} queue cannot be disposed while paused. + The {0} queue cannot be disposed while paused. + + + + Error getting process name. + Error getting process name. + + + + + diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.zh-Hans.xlf b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.zh-Hans.xlf new file mode 100644 index 0000000000..e16608966e --- /dev/null +++ b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.zh-Hans.xlf @@ -0,0 +1,82 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Error: {0} + Error: {0} + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + The specified argument cannot be empty. + The specified argument cannot be empty. + + + + The specified argument cannot be negative. + The specified argument cannot be negative. + + + + The specified argument must have the following type: {0}. + The specified argument must have the following type: {0}. + + + + The specified argument has the following property, which cannot be an empty string: {0}. + The specified argument has the following property, which cannot be an empty string: {0}. + + + + The specified argument has the following property, which cannot be negative: {0}. + The specified argument has the following property, which cannot be negative: {0}. + + + + The specified argument has the following property, which cannot be null: {0}. + The specified argument has the following property, which cannot be null: {0}. + + + + The specified argument has the following property: {0}. This property must have the following type: {1}. + The specified argument has the following property: {0}. This property must have the following type: {1}. + + + + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + + + + The {0} queue has already been disposed. + The {0} queue has already been disposed. + + + + The {0} queue cannot be disposed while paused. + The {0} queue cannot be disposed while paused. + + + + Error getting process name. + Error getting process name. + + + + + diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.zh-Hant.xlf b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.zh-Hant.xlf new file mode 100644 index 0000000000..45e147744d --- /dev/null +++ b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.zh-Hant.xlf @@ -0,0 +1,82 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Error: {0} + Error: {0} + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + The specified argument cannot be empty. + The specified argument cannot be empty. + + + + The specified argument cannot be negative. + The specified argument cannot be negative. + + + + The specified argument must have the following type: {0}. + The specified argument must have the following type: {0}. + + + + The specified argument has the following property, which cannot be an empty string: {0}. + The specified argument has the following property, which cannot be an empty string: {0}. + + + + The specified argument has the following property, which cannot be negative: {0}. + The specified argument has the following property, which cannot be negative: {0}. + + + + The specified argument has the following property, which cannot be null: {0}. + The specified argument has the following property, which cannot be null: {0}. + + + + The specified argument has the following property: {0}. This property must have the following type: {1}. + The specified argument has the following property: {0}. This property must have the following type: {1}. + + + + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + + + + The {0} queue has already been disposed. + The {0} queue has already been disposed. + + + + The {0} queue cannot be disposed while paused. + The {0} queue cannot be disposed while paused. + + + + Error getting process name. + Error getting process name. + + + + + diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Tracing/EqtTrace.cs b/src/Microsoft.TestPlatform.CoreUtilities/Tracing/EqtTrace.cs index 26c4cff0c7..7d25f5da5b 100644 --- a/src/Microsoft.TestPlatform.CoreUtilities/Tracing/EqtTrace.cs +++ b/src/Microsoft.TestPlatform.CoreUtilities/Tracing/EqtTrace.cs @@ -12,6 +12,7 @@ namespace Microsoft.VisualStudio.TestPlatform.ObjectModel using System.Threading; using Microsoft.VisualStudio.TestPlatform.CoreUtilities; + using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Resources; /// /// Wrapper class for tracing. diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Tracing/RollingFileTraceListener.cs b/src/Microsoft.TestPlatform.CoreUtilities/Tracing/RollingFileTraceListener.cs index 30ad736fba..0eff163ea3 100644 --- a/src/Microsoft.TestPlatform.CoreUtilities/Tracing/RollingFileTraceListener.cs +++ b/src/Microsoft.TestPlatform.CoreUtilities/Tracing/RollingFileTraceListener.cs @@ -10,6 +10,7 @@ namespace Microsoft.VisualStudio.TestPlatform.ObjectModel using System.Text; using Microsoft.VisualStudio.TestPlatform.CoreUtilities; + using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Resources; /// /// Performs logging to a file and rolls the output file when either time or size thresholds are diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Utilities/JobQueue.cs b/src/Microsoft.TestPlatform.CoreUtilities/Utilities/JobQueue.cs index 1b46713abc..a103785f93 100644 --- a/src/Microsoft.TestPlatform.CoreUtilities/Utilities/JobQueue.cs +++ b/src/Microsoft.TestPlatform.CoreUtilities/Utilities/JobQueue.cs @@ -15,6 +15,7 @@ namespace Microsoft.VisualStudio.TestPlatform.Utilities using Microsoft.VisualStudio.TestPlatform.Common.Utilities; using Microsoft.VisualStudio.TestPlatform.CoreUtilities; + using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Resources; using Microsoft.VisualStudio.TestPlatform.ObjectModel; /// diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Utilities/MulticastDelegateUtilities.cs b/src/Microsoft.TestPlatform.CoreUtilities/Utilities/MulticastDelegateUtilities.cs index fd473fe467..234f918fe4 100644 --- a/src/Microsoft.TestPlatform.CoreUtilities/Utilities/MulticastDelegateUtilities.cs +++ b/src/Microsoft.TestPlatform.CoreUtilities/Utilities/MulticastDelegateUtilities.cs @@ -7,6 +7,7 @@ namespace Microsoft.VisualStudio.TestPlatform.Utilities using System.Reflection; using Microsoft.VisualStudio.TestPlatform.CoreUtilities; + using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Resources; using Microsoft.VisualStudio.TestPlatform.ObjectModel; /// diff --git a/src/Microsoft.TestPlatform.CoreUtilities/ValidateArg.cs b/src/Microsoft.TestPlatform.CoreUtilities/ValidateArg.cs index 603c8dadc7..aad87d6d51 100644 --- a/src/Microsoft.TestPlatform.CoreUtilities/ValidateArg.cs +++ b/src/Microsoft.TestPlatform.CoreUtilities/ValidateArg.cs @@ -13,6 +13,7 @@ namespace Microsoft.VisualStudio.TestPlatform.ObjectModel using System.Reflection; using Microsoft.VisualStudio.TestPlatform.CoreUtilities; + using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Resources; /// /// Helper to validate parameters. diff --git a/src/Microsoft.TestPlatform.CoreUtilities/project.json b/src/Microsoft.TestPlatform.CoreUtilities/project.json index 8b02a32f3b..c486cdfd64 100644 --- a/src/Microsoft.TestPlatform.CoreUtilities/project.json +++ b/src/Microsoft.TestPlatform.CoreUtilities/project.json @@ -7,7 +7,8 @@ "warningsAsErrors": true, "additionalArguments": [ "/ruleset:../../scripts/stylecop.ruleset", "/additionalFile:../../scripts/stylecop.json" ], "xmlDoc": true, - "define": ["TRACE"] + "define": [ "TRACE" ], + "embed": [ "Resources/*.resx" ] }, "dependencies": { diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Adapter/FrameworkHandle.cs b/src/Microsoft.TestPlatform.CrossPlatEngine/Adapter/FrameworkHandle.cs index e38c9c2b72..3935405ba2 100644 --- a/src/Microsoft.TestPlatform.CrossPlatEngine/Adapter/FrameworkHandle.cs +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Adapter/FrameworkHandle.cs @@ -4,13 +4,16 @@ namespace Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Adapter { using System; using System.Collections.Generic; + using Execution; + using Microsoft.VisualStudio.TestPlatform.ObjectModel; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Engine; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Engine.ClientProtocol; - using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client; - using Microsoft.VisualStudio.TestPlatform.ObjectModel; + + using CrossPlatEngineResources = Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Resources.Resources; /// /// Handle to the framework which is passed to the test executors. @@ -92,7 +95,7 @@ public int LaunchProcessWithDebuggerAttached(string filePath, string workingDire // If it is not a debug run, then throw an error if (!this.testExecutionContext.IsDebug) { - throw new InvalidOperationException(CrossPlatEngine.Resources.LaunchDebugProcessNotAllowedForANonDebugRun); + throw new InvalidOperationException(CrossPlatEngineResources.LaunchDebugProcessNotAllowedForANonDebugRun); } var processInfo = new TestProcessStartInfo() diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Adapter/RunContext.cs b/src/Microsoft.TestPlatform.CrossPlatEngine/Adapter/RunContext.cs index ac614b9964..e4eeb12e86 100644 --- a/src/Microsoft.TestPlatform.CrossPlatEngine/Adapter/RunContext.cs +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Adapter/RunContext.cs @@ -12,6 +12,8 @@ namespace Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Adapter using Microsoft.VisualStudio.TestPlatform.ObjectModel; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter; + using CrossPlatEngineResources = Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Resources.Resources; + /// /// Provides user specified runSettings and framework provided context of the run. /// @@ -78,9 +80,9 @@ public ITestCaseFilterExpression GetTestCaseFilter(IEnumerable supported if (invalidProperties != null) { - var invalidPropertiesString = string.Join(CrossPlatEngine.Resources.StringSeperator, invalidProperties); - var validPropertiesSttring = supportedProperties == null ? string.Empty : string.Join(CrossPlatEngine.Resources.StringSeperator, supportedProperties.ToArray()); - var errorMessage = string.Format(CultureInfo.CurrentCulture, CrossPlatEngine.Resources.UnsupportedPropertiesInTestCaseFilter, invalidPropertiesString, validPropertiesSttring); + var invalidPropertiesString = string.Join(CrossPlatEngineResources.StringSeperator, invalidProperties); + var validPropertiesSttring = supportedProperties == null ? string.Empty : string.Join(CrossPlatEngineResources.StringSeperator, supportedProperties.ToArray()); + var errorMessage = string.Format(CultureInfo.CurrentCulture, CrossPlatEngineResources.UnsupportedPropertiesInTestCaseFilter, invalidPropertiesString, validPropertiesSttring); throw new TestPlatformFormatException(errorMessage, this.FilterExpressionWrapper.FilterString); } } diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Client/ProxyOperationManager.cs b/src/Microsoft.TestPlatform.CrossPlatEngine/Client/ProxyOperationManager.cs index 97d47c4e37..71afbf2806 100644 --- a/src/Microsoft.TestPlatform.CrossPlatEngine/Client/ProxyOperationManager.cs +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Client/ProxyOperationManager.cs @@ -14,7 +14,7 @@ namespace Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client using Microsoft.VisualStudio.TestPlatform.ObjectModel.Engine; using Microsoft.VisualStudio.TestPlatform.Utilities; - using Resources = Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Resources; + using CrossPlatEngineResources = Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Resources.Resources; /// /// Base class for any operations that the client needs to drive through the engine. @@ -80,7 +80,7 @@ public virtual void SetupChannel(IEnumerable sources) var hostDebugEnabled = Environment.GetEnvironmentVariable("VSTEST_HOST_DEBUG"); if (!string.IsNullOrEmpty(hostDebugEnabled) && hostDebugEnabled.Equals("1", StringComparison.Ordinal)) { - ConsoleOutput.Instance.WriteLine(Resources.HostDebuggerWarning, OutputLevel.Warning); + ConsoleOutput.Instance.WriteLine(CrossPlatEngineResources.HostDebuggerWarning, OutputLevel.Warning); } // Launch the test host and monitor exit. @@ -93,7 +93,7 @@ public virtual void SetupChannel(IEnumerable sources) // Wait for a timeout for the client to connect. if (!this.RequestSender.WaitForRequestHandlerConnection(this.connectionTimeout)) { - throw new TestPlatformException(string.Format(CultureInfo.CurrentUICulture, CrossPlatEngine.Resources.InitializationFailed)); + throw new TestPlatformException(string.Format(CultureInfo.CurrentUICulture, CrossPlatEngineResources.InitializationFailed)); } } diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Discovery/DiscovererEnumerator.cs b/src/Microsoft.TestPlatform.CrossPlatEngine/Discovery/DiscovererEnumerator.cs index 85f83d94f8..ba4e8f1c1c 100644 --- a/src/Microsoft.TestPlatform.CrossPlatEngine/Discovery/DiscovererEnumerator.cs +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Discovery/DiscovererEnumerator.cs @@ -12,12 +12,14 @@ namespace Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Discovery using Microsoft.VisualStudio.TestPlatform.Common.ExtensionFramework; using Microsoft.VisualStudio.TestPlatform.Common.ExtensionFramework.Utilities; using Microsoft.VisualStudio.TestPlatform.Common.Interfaces; - using Microsoft.VisualStudio.TestPlatform.ObjectModel; - using Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter; - using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging; using Microsoft.VisualStudio.TestPlatform.Common.Logging; using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing; using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing.Interfaces; + using Microsoft.VisualStudio.TestPlatform.ObjectModel; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging; + + using CrossPlatEngineResources = Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Resources.Resources; /// /// Enumerates through all the discoverers. @@ -103,7 +105,7 @@ private void LoadTestsFromAnExtension(string extensionAssembly, IEnumerable /// Orchestrates discovery operations for the engine communicating with the test host process. @@ -171,7 +172,7 @@ internal static IEnumerable GetValidSources(IEnumerable sources, { if (!File.Exists(source)) { - var errorMessage = string.Format(CultureInfo.CurrentCulture, CrossPlatEngine.Resources.FileNotFound, source); + var errorMessage = string.Format(CultureInfo.CurrentCulture, CrossPlatEngineResources.FileNotFound, source); logger.SendMessage(TestMessageLevel.Warning, errorMessage); continue; @@ -179,7 +180,7 @@ internal static IEnumerable GetValidSources(IEnumerable sources, if (!verifiedSources.Add(source)) { - var errorMessage = string.Format(CultureInfo.CurrentCulture, CrossPlatEngine.Resources.DuplicateSource, source); + var errorMessage = string.Format(CultureInfo.CurrentCulture, CrossPlatEngineResources.DuplicateSource, source); logger.SendMessage(TestMessageLevel.Warning, errorMessage); continue; @@ -190,7 +191,7 @@ internal static IEnumerable GetValidSources(IEnumerable sources, if (!verifiedSources.Any()) { var sourcesString = string.Join(",", sources.ToArray()); - var errorMessage = string.Format(CultureInfo.CurrentCulture, CrossPlatEngine.Resources.NoValidSourceFoundForDiscovery, sourcesString); + var errorMessage = string.Format(CultureInfo.CurrentCulture, CrossPlatEngineResources.NoValidSourceFoundForDiscovery, sourcesString); logger.SendMessage(TestMessageLevel.Warning, errorMessage); EqtTrace.Warning("TestDiscoveryManager: None of the source {0} is valid. ", sourcesString); diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Execution/BaseRunTests.cs b/src/Microsoft.TestPlatform.CrossPlatEngine/Execution/BaseRunTests.cs index 893215107b..67fd4f2bdc 100644 --- a/src/Microsoft.TestPlatform.CrossPlatEngine/Execution/BaseRunTests.cs +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Execution/BaseRunTests.cs @@ -10,22 +10,23 @@ namespace Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Execution using System.Globalization; using System.Threading.Tasks; - using Microsoft.VisualStudio.TestPlatform.Common.Interfaces; using Microsoft.VisualStudio.TestPlatform.Common.ExtensionFramework; using Microsoft.VisualStudio.TestPlatform.Common.ExtensionFramework.Utilities; + using Microsoft.VisualStudio.TestPlatform.Common.Interfaces; using Microsoft.VisualStudio.TestPlatform.Common.Utilities; + using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing.Interfaces; using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Adapter; + using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.DataCollection; + using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.EventHandlers; using Microsoft.VisualStudio.TestPlatform.ObjectModel; - using Microsoft.VisualStudio.TestPlatform.ObjectModel.Engine; - using Microsoft.VisualStudio.TestPlatform.ObjectModel.Engine.ClientProtocol; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Engine; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Engine.ClientProtocol; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Utilities; - using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing; - using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing.Interfaces; - using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.DataCollection; - using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.EventHandlers; + + using CrossPlatEngineResources = Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Resources.Resources; /// /// The base run tests. @@ -350,7 +351,7 @@ private bool RunTestInternalWithExecutors(IEnumerable> execut TestMessageLevel.Error, string.Format( CultureInfo.CurrentCulture, - CrossPlatEngine.Resources.ExceptionFromRunTests, + CrossPlatEngineResources.ExceptionFromRunTests, executorUriExtensionTuple.Item1, ExceptionUtilities.GetExceptionMessage(e))); } @@ -367,7 +368,7 @@ private bool RunTestInternalWithExecutors(IEnumerable> execut var runtimeVersion = " "; this.TestRunEventsHandler?.HandleLogMessage( TestMessageLevel.Warning, - string.Format(CultureInfo.CurrentUICulture, CrossPlatEngine.Resources.NoMatchingExecutor, executorUriExtensionTuple.Item1, runtimeVersion)); + string.Format(CultureInfo.CurrentUICulture, CrossPlatEngineResources.NoMatchingExecutor, executorUriExtensionTuple.Item1, runtimeVersion)); } } diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Execution/RunTestsWithSources.cs b/src/Microsoft.TestPlatform.CrossPlatEngine/Execution/RunTestsWithSources.cs index fdc08c4694..e9dd4ab556 100644 --- a/src/Microsoft.TestPlatform.CrossPlatEngine/Execution/RunTestsWithSources.cs +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Execution/RunTestsWithSources.cs @@ -6,20 +6,21 @@ namespace Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Execution using System.Collections.Generic; using System.Globalization; using System.Linq; - using System.Threading.Tasks; using Microsoft.VisualStudio.TestPlatform.Common.ExtensionFramework.Utilities; using Microsoft.VisualStudio.TestPlatform.Common.Filtering; using Microsoft.VisualStudio.TestPlatform.Common.Interfaces; - using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing.Interfaces; + using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing; using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Adapter; using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Discovery; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Engine; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Engine.ClientProtocol; - using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing; - using ObjectModel.Logging; + using ObjectModel.Client; + using ObjectModel.Logging; + + using CrossPlatEngineResources = Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Resources.Resources; internal class RunTestsWithSources : BaseRunTests { @@ -65,7 +66,7 @@ protected override void BeforeRaisingTestRunComplete(bool exceptionsHitDuringRun TestMessageLevel.Warning, string.Format( CultureInfo.CurrentUICulture, - CrossPlatEngine.Resources.TestRunFailed_NoTestsAreAvailableInTheSources, + CrossPlatEngineResources.TestRunFailed_NoTestsAreAvailableInTheSources, sourcesString)); } } @@ -138,7 +139,7 @@ private Dictionary, IEnumerable> GetExecutorVsSources { string errorMessage = string.Format( CultureInfo.CurrentUICulture, - CrossPlatEngine.Resources.IgnoringExecutorAsNoDefaultExecutorUriAttribute, + CrossPlatEngineResources.IgnoringExecutorAsNoDefaultExecutorUriAttribute, discoverer.Value); logger.SendMessage(TestMessageLevel.Warning, errorMessage); continue; @@ -154,7 +155,7 @@ private Dictionary, IEnumerable> GetExecutorVsSources { string errorMessage = string.Format( CultureInfo.CurrentUICulture, - CrossPlatEngine.Resources.DuplicateAdaptersFound, + CrossPlatEngineResources.DuplicateAdaptersFound, executorUri, discoverer.Value); logger.SendMessage(TestMessageLevel.Warning, errorMessage); diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Resources.Designer.cs b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/Resources.Designer.cs similarity index 98% rename from src/Microsoft.TestPlatform.CrossPlatEngine/Resources.Designer.cs rename to src/Microsoft.TestPlatform.CrossPlatEngine/Resources/Resources.Designer.cs index a4960aa874..4bea720aa8 100644 --- a/src/Microsoft.TestPlatform.CrossPlatEngine/Resources.Designer.cs +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/Resources.Designer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace Microsoft.VisualStudio.TestPlatform.CrossPlatEngine { +namespace Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Resources { using System; using System.Reflection; @@ -38,7 +38,7 @@ internal Resources() { public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.TestPlatform.CrossPlatEngine.Resources", typeof(Resources).GetTypeInfo().Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.TestPlatform.CrossPlatEngine.Resources.Resources", typeof(Resources).GetTypeInfo().Assembly); resourceMan = temp; } return resourceMan; diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Resources.resx b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/Resources.resx similarity index 100% rename from src/Microsoft.TestPlatform.CrossPlatEngine/Resources.resx rename to src/Microsoft.TestPlatform.CrossPlatEngine/Resources/Resources.resx diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.cs.xlf b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.cs.xlf new file mode 100644 index 0000000000..b611522923 --- /dev/null +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.cs.xlf @@ -0,0 +1,87 @@ + + + + + + Exception occurred while instantiating discoverer : {0} + Exception occurred while instantiating discoverer : {0} + + + + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + {0} is the unique identifier of test adapter. {1} is the name of the test adapter that shares a unique identifier with a previously loaded adapter. + + + Ignoring the specified duplicate source '{0}'. + Ignoring the specified duplicate source '{0}'. + + + + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + + + + An exception occurred while invoking executor '{0}': {1} + An exception occurred while invoking executor '{0}': {1} + + + + Could not find file {0}. + Could not find file {0}. + + + + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host, testhost are key words, it should not be localized + + + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + + + + Failed to initialize client proxy: could not connect to test process. + Failed to initialize client proxy: could not connect to test process. + + + + This operation is not allowed in the context of a non-debug run. + This operation is not allowed in the context of a non-debug run. + + + + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + + + + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + {0} - Executor uri String {1}- Version - .net Version Eg:-2.0.50727.00 + + + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + + + + , + , + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.de.xlf b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.de.xlf new file mode 100644 index 0000000000..94a675b797 --- /dev/null +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.de.xlf @@ -0,0 +1,87 @@ + + + + + + Exception occurred while instantiating discoverer : {0} + Exception occurred while instantiating discoverer : {0} + + + + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + {0} is the unique identifier of test adapter. {1} is the name of the test adapter that shares a unique identifier with a previously loaded adapter. + + + Ignoring the specified duplicate source '{0}'. + Ignoring the specified duplicate source '{0}'. + + + + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + + + + An exception occurred while invoking executor '{0}': {1} + An exception occurred while invoking executor '{0}': {1} + + + + Could not find file {0}. + Could not find file {0}. + + + + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host, testhost are key words, it should not be localized + + + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + + + + Failed to initialize client proxy: could not connect to test process. + Failed to initialize client proxy: could not connect to test process. + + + + This operation is not allowed in the context of a non-debug run. + This operation is not allowed in the context of a non-debug run. + + + + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + + + + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + {0} - Executor uri String {1}- Version - .net Version Eg:-2.0.50727.00 + + + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + + + + , + , + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.es.xlf b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.es.xlf new file mode 100644 index 0000000000..6a427ff6a5 --- /dev/null +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.es.xlf @@ -0,0 +1,87 @@ + + + + + + Exception occurred while instantiating discoverer : {0} + Exception occurred while instantiating discoverer : {0} + + + + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + {0} is the unique identifier of test adapter. {1} is the name of the test adapter that shares a unique identifier with a previously loaded adapter. + + + Ignoring the specified duplicate source '{0}'. + Ignoring the specified duplicate source '{0}'. + + + + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + + + + An exception occurred while invoking executor '{0}': {1} + An exception occurred while invoking executor '{0}': {1} + + + + Could not find file {0}. + Could not find file {0}. + + + + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host, testhost are key words, it should not be localized + + + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + + + + Failed to initialize client proxy: could not connect to test process. + Failed to initialize client proxy: could not connect to test process. + + + + This operation is not allowed in the context of a non-debug run. + This operation is not allowed in the context of a non-debug run. + + + + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + + + + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + {0} - Executor uri String {1}- Version - .net Version Eg:-2.0.50727.00 + + + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + + + + , + , + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.fr.xlf b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.fr.xlf new file mode 100644 index 0000000000..aa06f5efb3 --- /dev/null +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.fr.xlf @@ -0,0 +1,87 @@ + + + + + + Exception occurred while instantiating discoverer : {0} + Exception occurred while instantiating discoverer : {0} + + + + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + {0} is the unique identifier of test adapter. {1} is the name of the test adapter that shares a unique identifier with a previously loaded adapter. + + + Ignoring the specified duplicate source '{0}'. + Ignoring the specified duplicate source '{0}'. + + + + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + + + + An exception occurred while invoking executor '{0}': {1} + An exception occurred while invoking executor '{0}': {1} + + + + Could not find file {0}. + Could not find file {0}. + + + + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host, testhost are key words, it should not be localized + + + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + + + + Failed to initialize client proxy: could not connect to test process. + Failed to initialize client proxy: could not connect to test process. + + + + This operation is not allowed in the context of a non-debug run. + This operation is not allowed in the context of a non-debug run. + + + + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + + + + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + {0} - Executor uri String {1}- Version - .net Version Eg:-2.0.50727.00 + + + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + + + + , + , + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.it.xlf b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.it.xlf new file mode 100644 index 0000000000..2ba6d2a6aa --- /dev/null +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.it.xlf @@ -0,0 +1,87 @@ + + + + + + Exception occurred while instantiating discoverer : {0} + Exception occurred while instantiating discoverer : {0} + + + + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + {0} is the unique identifier of test adapter. {1} is the name of the test adapter that shares a unique identifier with a previously loaded adapter. + + + Ignoring the specified duplicate source '{0}'. + Ignoring the specified duplicate source '{0}'. + + + + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + + + + An exception occurred while invoking executor '{0}': {1} + An exception occurred while invoking executor '{0}': {1} + + + + Could not find file {0}. + Could not find file {0}. + + + + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host, testhost are key words, it should not be localized + + + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + + + + Failed to initialize client proxy: could not connect to test process. + Failed to initialize client proxy: could not connect to test process. + + + + This operation is not allowed in the context of a non-debug run. + This operation is not allowed in the context of a non-debug run. + + + + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + + + + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + {0} - Executor uri String {1}- Version - .net Version Eg:-2.0.50727.00 + + + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + + + + , + , + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.ja.xlf b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.ja.xlf new file mode 100644 index 0000000000..1e517fece7 --- /dev/null +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.ja.xlf @@ -0,0 +1,87 @@ + + + + + + Exception occurred while instantiating discoverer : {0} + Exception occurred while instantiating discoverer : {0} + + + + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + {0} is the unique identifier of test adapter. {1} is the name of the test adapter that shares a unique identifier with a previously loaded adapter. + + + Ignoring the specified duplicate source '{0}'. + Ignoring the specified duplicate source '{0}'. + + + + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + + + + An exception occurred while invoking executor '{0}': {1} + An exception occurred while invoking executor '{0}': {1} + + + + Could not find file {0}. + Could not find file {0}. + + + + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host, testhost are key words, it should not be localized + + + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + + + + Failed to initialize client proxy: could not connect to test process. + Failed to initialize client proxy: could not connect to test process. + + + + This operation is not allowed in the context of a non-debug run. + This operation is not allowed in the context of a non-debug run. + + + + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + + + + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + {0} - Executor uri String {1}- Version - .net Version Eg:-2.0.50727.00 + + + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + + + + , + , + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.ko.xlf b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.ko.xlf new file mode 100644 index 0000000000..c4f36a1a3a --- /dev/null +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.ko.xlf @@ -0,0 +1,87 @@ + + + + + + Exception occurred while instantiating discoverer : {0} + Exception occurred while instantiating discoverer : {0} + + + + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + {0} is the unique identifier of test adapter. {1} is the name of the test adapter that shares a unique identifier with a previously loaded adapter. + + + Ignoring the specified duplicate source '{0}'. + Ignoring the specified duplicate source '{0}'. + + + + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + + + + An exception occurred while invoking executor '{0}': {1} + An exception occurred while invoking executor '{0}': {1} + + + + Could not find file {0}. + Could not find file {0}. + + + + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host, testhost are key words, it should not be localized + + + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + + + + Failed to initialize client proxy: could not connect to test process. + Failed to initialize client proxy: could not connect to test process. + + + + This operation is not allowed in the context of a non-debug run. + This operation is not allowed in the context of a non-debug run. + + + + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + + + + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + {0} - Executor uri String {1}- Version - .net Version Eg:-2.0.50727.00 + + + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + + + + , + , + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.pl.xlf b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.pl.xlf new file mode 100644 index 0000000000..fb7ead24b0 --- /dev/null +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.pl.xlf @@ -0,0 +1,87 @@ + + + + + + Exception occurred while instantiating discoverer : {0} + Exception occurred while instantiating discoverer : {0} + + + + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + {0} is the unique identifier of test adapter. {1} is the name of the test adapter that shares a unique identifier with a previously loaded adapter. + + + Ignoring the specified duplicate source '{0}'. + Ignoring the specified duplicate source '{0}'. + + + + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + + + + An exception occurred while invoking executor '{0}': {1} + An exception occurred while invoking executor '{0}': {1} + + + + Could not find file {0}. + Could not find file {0}. + + + + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host, testhost are key words, it should not be localized + + + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + + + + Failed to initialize client proxy: could not connect to test process. + Failed to initialize client proxy: could not connect to test process. + + + + This operation is not allowed in the context of a non-debug run. + This operation is not allowed in the context of a non-debug run. + + + + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + + + + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + {0} - Executor uri String {1}- Version - .net Version Eg:-2.0.50727.00 + + + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + + + + , + , + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.pt-BR.xlf b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.pt-BR.xlf new file mode 100644 index 0000000000..12bb6c3da8 --- /dev/null +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.pt-BR.xlf @@ -0,0 +1,87 @@ + + + + + + Exception occurred while instantiating discoverer : {0} + Exception occurred while instantiating discoverer : {0} + + + + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + {0} is the unique identifier of test adapter. {1} is the name of the test adapter that shares a unique identifier with a previously loaded adapter. + + + Ignoring the specified duplicate source '{0}'. + Ignoring the specified duplicate source '{0}'. + + + + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + + + + An exception occurred while invoking executor '{0}': {1} + An exception occurred while invoking executor '{0}': {1} + + + + Could not find file {0}. + Could not find file {0}. + + + + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host, testhost are key words, it should not be localized + + + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + + + + Failed to initialize client proxy: could not connect to test process. + Failed to initialize client proxy: could not connect to test process. + + + + This operation is not allowed in the context of a non-debug run. + This operation is not allowed in the context of a non-debug run. + + + + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + + + + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + {0} - Executor uri String {1}- Version - .net Version Eg:-2.0.50727.00 + + + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + + + + , + , + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.ru.xlf b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.ru.xlf new file mode 100644 index 0000000000..e719a2db02 --- /dev/null +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.ru.xlf @@ -0,0 +1,87 @@ + + + + + + Exception occurred while instantiating discoverer : {0} + Exception occurred while instantiating discoverer : {0} + + + + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + {0} is the unique identifier of test adapter. {1} is the name of the test adapter that shares a unique identifier with a previously loaded adapter. + + + Ignoring the specified duplicate source '{0}'. + Ignoring the specified duplicate source '{0}'. + + + + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + + + + An exception occurred while invoking executor '{0}': {1} + An exception occurred while invoking executor '{0}': {1} + + + + Could not find file {0}. + Could not find file {0}. + + + + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host, testhost are key words, it should not be localized + + + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + + + + Failed to initialize client proxy: could not connect to test process. + Failed to initialize client proxy: could not connect to test process. + + + + This operation is not allowed in the context of a non-debug run. + This operation is not allowed in the context of a non-debug run. + + + + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + + + + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + {0} - Executor uri String {1}- Version - .net Version Eg:-2.0.50727.00 + + + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + + + + , + , + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.tr.xlf b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.tr.xlf new file mode 100644 index 0000000000..c685e283f3 --- /dev/null +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.tr.xlf @@ -0,0 +1,87 @@ + + + + + + Exception occurred while instantiating discoverer : {0} + Exception occurred while instantiating discoverer : {0} + + + + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + {0} is the unique identifier of test adapter. {1} is the name of the test adapter that shares a unique identifier with a previously loaded adapter. + + + Ignoring the specified duplicate source '{0}'. + Ignoring the specified duplicate source '{0}'. + + + + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + + + + An exception occurred while invoking executor '{0}': {1} + An exception occurred while invoking executor '{0}': {1} + + + + Could not find file {0}. + Could not find file {0}. + + + + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host, testhost are key words, it should not be localized + + + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + + + + Failed to initialize client proxy: could not connect to test process. + Failed to initialize client proxy: could not connect to test process. + + + + This operation is not allowed in the context of a non-debug run. + This operation is not allowed in the context of a non-debug run. + + + + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + + + + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + {0} - Executor uri String {1}- Version - .net Version Eg:-2.0.50727.00 + + + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + + + + , + , + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.zh-Hans.xlf b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.zh-Hans.xlf new file mode 100644 index 0000000000..54759d4c7f --- /dev/null +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.zh-Hans.xlf @@ -0,0 +1,87 @@ + + + + + + Exception occurred while instantiating discoverer : {0} + Exception occurred while instantiating discoverer : {0} + + + + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + {0} is the unique identifier of test adapter. {1} is the name of the test adapter that shares a unique identifier with a previously loaded adapter. + + + Ignoring the specified duplicate source '{0}'. + Ignoring the specified duplicate source '{0}'. + + + + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + + + + An exception occurred while invoking executor '{0}': {1} + An exception occurred while invoking executor '{0}': {1} + + + + Could not find file {0}. + Could not find file {0}. + + + + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host, testhost are key words, it should not be localized + + + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + + + + Failed to initialize client proxy: could not connect to test process. + Failed to initialize client proxy: could not connect to test process. + + + + This operation is not allowed in the context of a non-debug run. + This operation is not allowed in the context of a non-debug run. + + + + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + + + + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + {0} - Executor uri String {1}- Version - .net Version Eg:-2.0.50727.00 + + + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + + + + , + , + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.zh-Hant.xlf b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.zh-Hant.xlf new file mode 100644 index 0000000000..0595d91875 --- /dev/null +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.zh-Hant.xlf @@ -0,0 +1,87 @@ + + + + + + Exception occurred while instantiating discoverer : {0} + Exception occurred while instantiating discoverer : {0} + + + + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + {0} is the unique identifier of test adapter. {1} is the name of the test adapter that shares a unique identifier with a previously loaded adapter. + + + Ignoring the specified duplicate source '{0}'. + Ignoring the specified duplicate source '{0}'. + + + + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + + + + An exception occurred while invoking executor '{0}': {1} + An exception occurred while invoking executor '{0}': {1} + + + + Could not find file {0}. + Could not find file {0}. + + + + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host, testhost are key words, it should not be localized + + + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + + + + Failed to initialize client proxy: could not connect to test process. + Failed to initialize client proxy: could not connect to test process. + + + + This operation is not allowed in the context of a non-debug run. + This operation is not allowed in the context of a non-debug run. + + + + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + + + + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + {0} - Executor uri String {1}- Version - .net Version Eg:-2.0.50727.00 + + + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + + + + , + , + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/project.json b/src/Microsoft.TestPlatform.CrossPlatEngine/project.json index 4aa47da095..3c0ed37d03 100644 --- a/src/Microsoft.TestPlatform.CrossPlatEngine/project.json +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/project.json @@ -3,7 +3,8 @@ "buildOptions": { "delaySign": true, "keyFile": "../../scripts/key.snk", - "warningsAsErrors": true + "warningsAsErrors": true, + "embed": [ "Resources/*.resx" ] }, "dependencies": { diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/ObjectModel/TestListCategory.cs b/src/Microsoft.TestPlatform.Extensions.TrxLogger/ObjectModel/TestListCategory.cs index 30ebf5c507..f5ba8782de 100644 --- a/src/Microsoft.TestPlatform.Extensions.TrxLogger/ObjectModel/TestListCategory.cs +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/ObjectModel/TestListCategory.cs @@ -2,14 +2,13 @@ namespace Microsoft.TestPlatform.Extensions.TrxLogger.ObjectModel { - using System; using System.Diagnostics; - using System.Diagnostics.CodeAnalysis; - using System.Globalization; using Microsoft.TestPlatform.Extensions.TrxLogger.Utility; using Microsoft.TestPlatform.Extensions.TrxLogger.XML; + using TrxLoggerResources = Microsoft.TestPlatform.Extensions.TrxLogger.Resources.TrxResource; + /// /// The test list category. /// @@ -80,7 +79,7 @@ public static TestListCategory UncategorizedResults if (uncategorizedResults == null) { uncategorizedResults = new TestListCategory( - TrxResource.TS_UncategorizedResults, TestListCategoryId.Uncategorized, TestListCategoryId.Root); + TrxLoggerResources.TS_UncategorizedResults, TestListCategoryId.Uncategorized, TestListCategoryId.Root); } } } @@ -103,7 +102,7 @@ public static TestListCategory AllResults if (allResults == null) { allResults = new TestListCategory( - TrxResource.TS_AllResults, TestListCategoryId.AllItems, TestListCategoryId.Root); + TrxLoggerResources.TS_AllResults, TestListCategoryId.AllItems, TestListCategoryId.Root); } } } diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/ObjectModel/TestRun.cs b/src/Microsoft.TestPlatform.Extensions.TrxLogger/ObjectModel/TestRun.cs index 4a3a46e0f5..05a195772d 100644 --- a/src/Microsoft.TestPlatform.Extensions.TrxLogger/ObjectModel/TestRun.cs +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/ObjectModel/TestRun.cs @@ -11,6 +11,8 @@ namespace Microsoft.TestPlatform.Extensions.TrxLogger.ObjectModel using Microsoft.TestPlatform.Extensions.TrxLogger.Utility; using Microsoft.TestPlatform.Extensions.TrxLogger.XML; + using TrxLoggerResources = Microsoft.TestPlatform.Extensions.TrxLogger.Resources.TrxResource; + /// /// Class having information about a test run. /// @@ -172,13 +174,13 @@ internal string GetResultsDirectory() if (this.RunConfiguration == null) { Debug.Fail("'RunConfiguration' is null"); - throw new Exception(String.Format(CultureInfo.CurrentCulture, TrxResource.Common_MissingRunConfigInRun)); + throw new Exception(String.Format(CultureInfo.CurrentCulture, TrxLoggerResources.Common_MissingRunConfigInRun)); } if (string.IsNullOrEmpty(this.RunConfiguration.RunDeploymentRootDirectory)) { Debug.Fail("'RunConfiguration.RunDeploymentRootDirectory' is null or empty"); - throw new Exception(String.Format(CultureInfo.CurrentCulture, TrxResource.Common_MissingRunDeploymentRootInRunConfig)); + throw new Exception(String.Format(CultureInfo.CurrentCulture, TrxLoggerResources.Common_MissingRunDeploymentRootInRunConfig)); } return this.RunConfiguration.RunDeploymentInDirectory; @@ -194,7 +196,7 @@ private static string FormatDateTimeForRunName(DateTime timeStamp) private void Initialize() { this.id = Guid.NewGuid(); - this.name = String.Format(CultureInfo.CurrentCulture, TrxResource.Common_TestRunName, Environment.GetEnvironmentVariable("UserName"), Environment.MachineName, FormatDateTimeForRunName(DateTime.Now)); + this.name = String.Format(CultureInfo.CurrentCulture, TrxLoggerResources.Common_TestRunName, Environment.GetEnvironmentVariable("UserName"), Environment.MachineName, FormatDateTimeForRunName(DateTime.Now)); this.runUser = WindowsIdentity.GetCurrent().Name; this.created = DateTime.Now.ToUniversalTime(); this.queued = DateTime.Now.ToUniversalTime(); diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/ObjectModel/UnitTestElement.cs b/src/Microsoft.TestPlatform.Extensions.TrxLogger/ObjectModel/UnitTestElement.cs index 3f82cf6101..b7245eb592 100644 --- a/src/Microsoft.TestPlatform.Extensions.TrxLogger/ObjectModel/UnitTestElement.cs +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/ObjectModel/UnitTestElement.cs @@ -9,6 +9,8 @@ namespace Microsoft.TestPlatform.Extensions.TrxLogger.ObjectModel using Microsoft.TestPlatform.Extensions.TrxLogger.Utility; using Microsoft.TestPlatform.Extensions.TrxLogger.XML; + using TrxLoggerResources = Microsoft.TestPlatform.Extensions.TrxLogger.Resources.TrxResource; + /// /// Class for all tests /// @@ -272,8 +274,8 @@ public override string ToString() return string.Format( CultureInfo.InvariantCulture, "'{0}' {1}", - this.name != null ? this.name : TrxResource.Common_NullInMessages, - this.id != null ? this.id.ToString() : TrxResource.Common_NullInMessages); + this.name != null ? this.name : TrxLoggerResources.Common_NullInMessages, + this.id != null ? this.id.ToString() : TrxLoggerResources.Common_NullInMessages); } /// diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/ObjectModel/UnitTestResult.cs b/src/Microsoft.TestPlatform.Extensions.TrxLogger/ObjectModel/UnitTestResult.cs index f4ca34b50e..80d11fa66d 100644 --- a/src/Microsoft.TestPlatform.Extensions.TrxLogger/ObjectModel/UnitTestResult.cs +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/ObjectModel/UnitTestResult.cs @@ -13,6 +13,8 @@ namespace Microsoft.TestPlatform.Extensions.TrxLogger.ObjectModel using Microsoft.TestPlatform.Extensions.TrxLogger.XML; using Microsoft.VisualStudio.TestPlatform.ObjectModel; + using TrxLoggerResources = Microsoft.TestPlatform.Extensions.TrxLogger.Resources.TrxResource; + /// /// Class for unit test result. /// @@ -288,7 +290,7 @@ public string TestResultsDirectory if (this.testRun == null) { Debug.Fail("'m_testRun' is null"); - throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, TrxResource.Common_MissingRunInResult)); + throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, TrxLoggerResources.Common_MissingRunInResult)); } return this.testRun.GetResultFilesDirectory(this); diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/TrxResource.Designer.cs b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/TrxResource.Designer.cs similarity index 98% rename from src/Microsoft.TestPlatform.Extensions.TrxLogger/TrxResource.Designer.cs rename to src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/TrxResource.Designer.cs index 83a47f553c..d3ad2db7f1 100644 --- a/src/Microsoft.TestPlatform.Extensions.TrxLogger/TrxResource.Designer.cs +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/TrxResource.Designer.cs @@ -1,4 +1,4 @@ -//------------------------------------------------------------------------------ +//------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.42000 @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace Microsoft.TestPlatform.Extensions.TrxLogger { +namespace Microsoft.TestPlatform.Extensions.TrxLogger.Resources { using System; using System.Reflection; @@ -38,7 +38,7 @@ internal TrxResource() { public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.TestPlatform.Extensions.TrxLogger.TrxResource", typeof(TrxResource).GetTypeInfo().Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.TestPlatform.Extensions.TrxLogger.Resources.TrxResource", typeof(TrxResource).GetTypeInfo().Assembly); resourceMan = temp; } return resourceMan; diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/TrxResource.resx b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/TrxResource.resx similarity index 100% rename from src/Microsoft.TestPlatform.Extensions.TrxLogger/TrxResource.resx rename to src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/TrxResource.resx diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.cs.xlf b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.cs.xlf new file mode 100644 index 0000000000..78a2f72168 --- /dev/null +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.cs.xlf @@ -0,0 +1,159 @@ + + + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + The parameter cannot be less than 0. + The parameter cannot be less than 0. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + + + + Test Settings are not specified. + Test Settings are not specified. + + + + The active Test Settings do not define the Run Deployment Directory. + The active Test Settings do not define the Run Deployment Directory. + + + + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + + + + The specified file/directory name '{0}' is not valid. + The specified file/directory name '{0}' is not valid. + + + + {0}@{1} {2} + {0}@{1} {2} + + + + Failed to attach files from: {0} +Error Details: {1}:{2} + Failed to attach files from: {0} +Error Details: {1}:{2} + + + + Test '{0}' was skipped in the test run. + Test '{0}' was skipped in the test run. + + + + Results File: {0} + Results File: {0} + + + + All Loaded Results + All Loaded Results + + + + Results Not in a List + Results Not in a List + + + + deployment item '{0}' + deployment item '{0}' + + + + deployment item '{0}' (output directory '{1}') + deployment item '{0}' (output directory '{1}') + + + + (null) + (null) + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.de.xlf b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.de.xlf new file mode 100644 index 0000000000..b4fc996b55 --- /dev/null +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.de.xlf @@ -0,0 +1,159 @@ + + + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + The parameter cannot be less than 0. + The parameter cannot be less than 0. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + + + + Test Settings are not specified. + Test Settings are not specified. + + + + The active Test Settings do not define the Run Deployment Directory. + The active Test Settings do not define the Run Deployment Directory. + + + + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + + + + The specified file/directory name '{0}' is not valid. + The specified file/directory name '{0}' is not valid. + + + + {0}@{1} {2} + {0}@{1} {2} + + + + Failed to attach files from: {0} +Error Details: {1}:{2} + Failed to attach files from: {0} +Error Details: {1}:{2} + + + + Test '{0}' was skipped in the test run. + Test '{0}' was skipped in the test run. + + + + Results File: {0} + Results File: {0} + + + + All Loaded Results + All Loaded Results + + + + Results Not in a List + Results Not in a List + + + + deployment item '{0}' + deployment item '{0}' + + + + deployment item '{0}' (output directory '{1}') + deployment item '{0}' (output directory '{1}') + + + + (null) + (null) + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.es.xlf b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.es.xlf new file mode 100644 index 0000000000..200265f448 --- /dev/null +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.es.xlf @@ -0,0 +1,159 @@ + + + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + The parameter cannot be less than 0. + The parameter cannot be less than 0. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + + + + Test Settings are not specified. + Test Settings are not specified. + + + + The active Test Settings do not define the Run Deployment Directory. + The active Test Settings do not define the Run Deployment Directory. + + + + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + + + + The specified file/directory name '{0}' is not valid. + The specified file/directory name '{0}' is not valid. + + + + {0}@{1} {2} + {0}@{1} {2} + + + + Failed to attach files from: {0} +Error Details: {1}:{2} + Failed to attach files from: {0} +Error Details: {1}:{2} + + + + Test '{0}' was skipped in the test run. + Test '{0}' was skipped in the test run. + + + + Results File: {0} + Results File: {0} + + + + All Loaded Results + All Loaded Results + + + + Results Not in a List + Results Not in a List + + + + deployment item '{0}' + deployment item '{0}' + + + + deployment item '{0}' (output directory '{1}') + deployment item '{0}' (output directory '{1}') + + + + (null) + (null) + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.fr.xlf b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.fr.xlf new file mode 100644 index 0000000000..99d5c3c06c --- /dev/null +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.fr.xlf @@ -0,0 +1,159 @@ + + + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + The parameter cannot be less than 0. + The parameter cannot be less than 0. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + + + + Test Settings are not specified. + Test Settings are not specified. + + + + The active Test Settings do not define the Run Deployment Directory. + The active Test Settings do not define the Run Deployment Directory. + + + + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + + + + The specified file/directory name '{0}' is not valid. + The specified file/directory name '{0}' is not valid. + + + + {0}@{1} {2} + {0}@{1} {2} + + + + Failed to attach files from: {0} +Error Details: {1}:{2} + Failed to attach files from: {0} +Error Details: {1}:{2} + + + + Test '{0}' was skipped in the test run. + Test '{0}' was skipped in the test run. + + + + Results File: {0} + Results File: {0} + + + + All Loaded Results + All Loaded Results + + + + Results Not in a List + Results Not in a List + + + + deployment item '{0}' + deployment item '{0}' + + + + deployment item '{0}' (output directory '{1}') + deployment item '{0}' (output directory '{1}') + + + + (null) + (null) + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.it.xlf b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.it.xlf new file mode 100644 index 0000000000..ba7ab70a0d --- /dev/null +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.it.xlf @@ -0,0 +1,159 @@ + + + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + The parameter cannot be less than 0. + The parameter cannot be less than 0. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + + + + Test Settings are not specified. + Test Settings are not specified. + + + + The active Test Settings do not define the Run Deployment Directory. + The active Test Settings do not define the Run Deployment Directory. + + + + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + + + + The specified file/directory name '{0}' is not valid. + The specified file/directory name '{0}' is not valid. + + + + {0}@{1} {2} + {0}@{1} {2} + + + + Failed to attach files from: {0} +Error Details: {1}:{2} + Failed to attach files from: {0} +Error Details: {1}:{2} + + + + Test '{0}' was skipped in the test run. + Test '{0}' was skipped in the test run. + + + + Results File: {0} + Results File: {0} + + + + All Loaded Results + All Loaded Results + + + + Results Not in a List + Results Not in a List + + + + deployment item '{0}' + deployment item '{0}' + + + + deployment item '{0}' (output directory '{1}') + deployment item '{0}' (output directory '{1}') + + + + (null) + (null) + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.ja.xlf b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.ja.xlf new file mode 100644 index 0000000000..1e60f3b111 --- /dev/null +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.ja.xlf @@ -0,0 +1,159 @@ + + + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + The parameter cannot be less than 0. + The parameter cannot be less than 0. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + + + + Test Settings are not specified. + Test Settings are not specified. + + + + The active Test Settings do not define the Run Deployment Directory. + The active Test Settings do not define the Run Deployment Directory. + + + + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + + + + The specified file/directory name '{0}' is not valid. + The specified file/directory name '{0}' is not valid. + + + + {0}@{1} {2} + {0}@{1} {2} + + + + Failed to attach files from: {0} +Error Details: {1}:{2} + Failed to attach files from: {0} +Error Details: {1}:{2} + + + + Test '{0}' was skipped in the test run. + Test '{0}' was skipped in the test run. + + + + Results File: {0} + Results File: {0} + + + + All Loaded Results + All Loaded Results + + + + Results Not in a List + Results Not in a List + + + + deployment item '{0}' + deployment item '{0}' + + + + deployment item '{0}' (output directory '{1}') + deployment item '{0}' (output directory '{1}') + + + + (null) + (null) + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.ko.xlf b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.ko.xlf new file mode 100644 index 0000000000..2035636d4d --- /dev/null +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.ko.xlf @@ -0,0 +1,159 @@ + + + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + The parameter cannot be less than 0. + The parameter cannot be less than 0. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + + + + Test Settings are not specified. + Test Settings are not specified. + + + + The active Test Settings do not define the Run Deployment Directory. + The active Test Settings do not define the Run Deployment Directory. + + + + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + + + + The specified file/directory name '{0}' is not valid. + The specified file/directory name '{0}' is not valid. + + + + {0}@{1} {2} + {0}@{1} {2} + + + + Failed to attach files from: {0} +Error Details: {1}:{2} + Failed to attach files from: {0} +Error Details: {1}:{2} + + + + Test '{0}' was skipped in the test run. + Test '{0}' was skipped in the test run. + + + + Results File: {0} + Results File: {0} + + + + All Loaded Results + All Loaded Results + + + + Results Not in a List + Results Not in a List + + + + deployment item '{0}' + deployment item '{0}' + + + + deployment item '{0}' (output directory '{1}') + deployment item '{0}' (output directory '{1}') + + + + (null) + (null) + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.pl.xlf b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.pl.xlf new file mode 100644 index 0000000000..2329f8e940 --- /dev/null +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.pl.xlf @@ -0,0 +1,159 @@ + + + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + The parameter cannot be less than 0. + The parameter cannot be less than 0. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + + + + Test Settings are not specified. + Test Settings are not specified. + + + + The active Test Settings do not define the Run Deployment Directory. + The active Test Settings do not define the Run Deployment Directory. + + + + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + + + + The specified file/directory name '{0}' is not valid. + The specified file/directory name '{0}' is not valid. + + + + {0}@{1} {2} + {0}@{1} {2} + + + + Failed to attach files from: {0} +Error Details: {1}:{2} + Failed to attach files from: {0} +Error Details: {1}:{2} + + + + Test '{0}' was skipped in the test run. + Test '{0}' was skipped in the test run. + + + + Results File: {0} + Results File: {0} + + + + All Loaded Results + All Loaded Results + + + + Results Not in a List + Results Not in a List + + + + deployment item '{0}' + deployment item '{0}' + + + + deployment item '{0}' (output directory '{1}') + deployment item '{0}' (output directory '{1}') + + + + (null) + (null) + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.pt-BR.xlf b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.pt-BR.xlf new file mode 100644 index 0000000000..73d6b720e0 --- /dev/null +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.pt-BR.xlf @@ -0,0 +1,159 @@ + + + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + The parameter cannot be less than 0. + The parameter cannot be less than 0. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + + + + Test Settings are not specified. + Test Settings are not specified. + + + + The active Test Settings do not define the Run Deployment Directory. + The active Test Settings do not define the Run Deployment Directory. + + + + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + + + + The specified file/directory name '{0}' is not valid. + The specified file/directory name '{0}' is not valid. + + + + {0}@{1} {2} + {0}@{1} {2} + + + + Failed to attach files from: {0} +Error Details: {1}:{2} + Failed to attach files from: {0} +Error Details: {1}:{2} + + + + Test '{0}' was skipped in the test run. + Test '{0}' was skipped in the test run. + + + + Results File: {0} + Results File: {0} + + + + All Loaded Results + All Loaded Results + + + + Results Not in a List + Results Not in a List + + + + deployment item '{0}' + deployment item '{0}' + + + + deployment item '{0}' (output directory '{1}') + deployment item '{0}' (output directory '{1}') + + + + (null) + (null) + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.ru.xlf b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.ru.xlf new file mode 100644 index 0000000000..c396e0492a --- /dev/null +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.ru.xlf @@ -0,0 +1,159 @@ + + + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + The parameter cannot be less than 0. + The parameter cannot be less than 0. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + + + + Test Settings are not specified. + Test Settings are not specified. + + + + The active Test Settings do not define the Run Deployment Directory. + The active Test Settings do not define the Run Deployment Directory. + + + + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + + + + The specified file/directory name '{0}' is not valid. + The specified file/directory name '{0}' is not valid. + + + + {0}@{1} {2} + {0}@{1} {2} + + + + Failed to attach files from: {0} +Error Details: {1}:{2} + Failed to attach files from: {0} +Error Details: {1}:{2} + + + + Test '{0}' was skipped in the test run. + Test '{0}' was skipped in the test run. + + + + Results File: {0} + Results File: {0} + + + + All Loaded Results + All Loaded Results + + + + Results Not in a List + Results Not in a List + + + + deployment item '{0}' + deployment item '{0}' + + + + deployment item '{0}' (output directory '{1}') + deployment item '{0}' (output directory '{1}') + + + + (null) + (null) + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.tr.xlf b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.tr.xlf new file mode 100644 index 0000000000..f65bdd82b3 --- /dev/null +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.tr.xlf @@ -0,0 +1,159 @@ + + + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + The parameter cannot be less than 0. + The parameter cannot be less than 0. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + + + + Test Settings are not specified. + Test Settings are not specified. + + + + The active Test Settings do not define the Run Deployment Directory. + The active Test Settings do not define the Run Deployment Directory. + + + + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + + + + The specified file/directory name '{0}' is not valid. + The specified file/directory name '{0}' is not valid. + + + + {0}@{1} {2} + {0}@{1} {2} + + + + Failed to attach files from: {0} +Error Details: {1}:{2} + Failed to attach files from: {0} +Error Details: {1}:{2} + + + + Test '{0}' was skipped in the test run. + Test '{0}' was skipped in the test run. + + + + Results File: {0} + Results File: {0} + + + + All Loaded Results + All Loaded Results + + + + Results Not in a List + Results Not in a List + + + + deployment item '{0}' + deployment item '{0}' + + + + deployment item '{0}' (output directory '{1}') + deployment item '{0}' (output directory '{1}') + + + + (null) + (null) + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.zh-Hans.xlf b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.zh-Hans.xlf new file mode 100644 index 0000000000..a7a53fe0c0 --- /dev/null +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.zh-Hans.xlf @@ -0,0 +1,159 @@ + + + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + The parameter cannot be less than 0. + The parameter cannot be less than 0. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + + + + Test Settings are not specified. + Test Settings are not specified. + + + + The active Test Settings do not define the Run Deployment Directory. + The active Test Settings do not define the Run Deployment Directory. + + + + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + + + + The specified file/directory name '{0}' is not valid. + The specified file/directory name '{0}' is not valid. + + + + {0}@{1} {2} + {0}@{1} {2} + + + + Failed to attach files from: {0} +Error Details: {1}:{2} + Failed to attach files from: {0} +Error Details: {1}:{2} + + + + Test '{0}' was skipped in the test run. + Test '{0}' was skipped in the test run. + + + + Results File: {0} + Results File: {0} + + + + All Loaded Results + All Loaded Results + + + + Results Not in a List + Results Not in a List + + + + deployment item '{0}' + deployment item '{0}' + + + + deployment item '{0}' (output directory '{1}') + deployment item '{0}' (output directory '{1}') + + + + (null) + (null) + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.zh-Hant.xlf b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.zh-Hant.xlf new file mode 100644 index 0000000000..225a172c83 --- /dev/null +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.zh-Hant.xlf @@ -0,0 +1,159 @@ + + + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + The parameter cannot be less than 0. + The parameter cannot be less than 0. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + + + + Test Settings are not specified. + Test Settings are not specified. + + + + The active Test Settings do not define the Run Deployment Directory. + The active Test Settings do not define the Run Deployment Directory. + + + + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + + + + The specified file/directory name '{0}' is not valid. + The specified file/directory name '{0}' is not valid. + + + + {0}@{1} {2} + {0}@{1} {2} + + + + Failed to attach files from: {0} +Error Details: {1}:{2} + Failed to attach files from: {0} +Error Details: {1}:{2} + + + + Test '{0}' was skipped in the test run. + Test '{0}' was skipped in the test run. + + + + Results File: {0} + Results File: {0} + + + + All Loaded Results + All Loaded Results + + + + Results Not in a List + Results Not in a List + + + + deployment item '{0}' + deployment item '{0}' + + + + deployment item '{0}' (output directory '{1}') + deployment item '{0}' (output directory '{1}') + + + + (null) + (null) + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/TrxLogger.cs b/src/Microsoft.TestPlatform.Extensions.TrxLogger/TrxLogger.cs index a03da6c595..5d275d7bf1 100644 --- a/src/Microsoft.TestPlatform.Extensions.TrxLogger/TrxLogger.cs +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/TrxLogger.cs @@ -11,7 +11,6 @@ namespace Microsoft.VisualStudio.TestPlatform.Extensions.TrxLogger using System.Text; using System.Xml; - using Microsoft.TestPlatform.Extensions.TrxLogger; using Microsoft.TestPlatform.Extensions.TrxLogger.ObjectModel; using Microsoft.TestPlatform.Extensions.TrxLogger.Utility; using Microsoft.TestPlatform.Extensions.TrxLogger.XML; @@ -21,6 +20,7 @@ namespace Microsoft.VisualStudio.TestPlatform.Extensions.TrxLogger using ObjectModel.Logging; using TrxLoggerObjectModel = Microsoft.TestPlatform.Extensions.TrxLogger.ObjectModel; + using TrxLoggerResources = Microsoft.TestPlatform.Extensions.TrxLogger.Resources.TrxResource; /// /// Logger for Generating TRX @@ -360,7 +360,7 @@ internal void TestRunCompleteHandler(object sender, TestRunCompleteEventArgs e) { FileStream fs = File.OpenWrite(trxFileName); rootElement.OwnerDocument.Save(fs); - String resultsFileMessage = String.Format(CultureInfo.CurrentCulture, TrxResource.TrxLoggerResultsFile, trxFileName); + String resultsFileMessage = String.Format(CultureInfo.CurrentCulture, TrxLoggerResources.TrxLoggerResultsFile, trxFileName); Console.WriteLine(resultsFileMessage); } catch (System.UnauthorizedAccessException fileWriteException) @@ -421,7 +421,7 @@ private void HandleSkippedTest(ObjectModel.TestResult rsTestResult) ObjectModel.TestCase testCase = rsTestResult.TestCase; string testCaseName = !string.IsNullOrEmpty(testCase.DisplayName) ? testCase.DisplayName : testCase.FullyQualifiedName; - string message = String.Format(CultureInfo.CurrentCulture, TrxResource.MessageForSkippedTests, testCaseName); + string message = String.Format(CultureInfo.CurrentCulture, TrxLoggerResources.MessageForSkippedTests, testCaseName); this.AddRunLevelInformationalMessage(message); } diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/Utility/Converter.cs b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Utility/Converter.cs index 4ba252b7ac..62a972ab8d 100644 --- a/src/Microsoft.TestPlatform.Extensions.TrxLogger/Utility/Converter.cs +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Utility/Converter.cs @@ -13,9 +13,11 @@ namespace Microsoft.TestPlatform.Extensions.TrxLogger.Utility using Microsoft.TestPlatform.Extensions.TrxLogger.ObjectModel; using Microsoft.VisualStudio.TestPlatform.Extensions.TrxLogger; - using TrxObjectModel = Microsoft.TestPlatform.Extensions.TrxLogger.ObjectModel; using ObjectModel = Microsoft.VisualStudio.TestPlatform.ObjectModel; + using TrxLoggerResources = Microsoft.TestPlatform.Extensions.TrxLogger.Resources.TrxResource; + using TrxObjectModel = Microsoft.TestPlatform.Extensions.TrxLogger.ObjectModel; + /// /// The converter class. /// @@ -223,7 +225,7 @@ internal static IList ToResultFiles(IEnumerable /// Class to be used for parameter verification. /// @@ -58,7 +60,7 @@ public static void StringNotNullOrEmpty(string parameter, string parameterName) Debug.Assert(!string.IsNullOrEmpty(parameter), string.Format(CultureInfo.InvariantCulture, "'{0}' is null or empty", parameterName)); if (string.IsNullOrEmpty(parameter)) { - throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, TrxResource.Common_CannotBeNullOrEmpty)); + throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, TrxLoggerResources.Common_CannotBeNullOrEmpty)); } } diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/Utility/FilterHelper.cs b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Utility/FilterHelper.cs index 267e752c19..b995817c1e 100644 --- a/src/Microsoft.TestPlatform.Extensions.TrxLogger/Utility/FilterHelper.cs +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Utility/FilterHelper.cs @@ -11,6 +11,8 @@ namespace Microsoft.TestPlatform.Extensions.TrxLogger.Utility using System.Text; using System.Text.RegularExpressions; + using TrxLoggerResources = Microsoft.TestPlatform.Extensions.TrxLogger.Resources.TrxResource; + /// /// Helper function to deal with file name. /// @@ -80,7 +82,7 @@ public static string ReplaceInvalidFileNameChars(string fileName) if (replaced.Length == 0) { Debug.Fail(string.Format(CultureInfo.InvariantCulture, "After replacing invalid chars in file '{0}' there's nothing left...", fileName)); - throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, TrxResource.Common_NothingLeftAfterReplaciingBadCharsInName, fileName)); + throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, TrxLoggerResources.Common_NothingLeftAfterReplaciingBadCharsInName, fileName)); } if (IsReservedFileName(replaced)) @@ -275,7 +277,7 @@ private static string GetNextIterationNameHelper( } while (iteration != uint.MaxValue); - throw new Exception(string.Format(CultureInfo.CurrentCulture, TrxResource.Common_CannotGetNextIterationName, originalName, baseDirectoryName)); + throw new Exception(string.Format(CultureInfo.CurrentCulture, TrxLoggerResources.Common_CannotGetNextIterationName, originalName, baseDirectoryName)); } private abstract class IterationHelper diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/project.json b/src/Microsoft.TestPlatform.Extensions.TrxLogger/project.json index 71743356d9..42372d3580 100644 --- a/src/Microsoft.TestPlatform.Extensions.TrxLogger/project.json +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/project.json @@ -4,7 +4,8 @@ "outputName": "Microsoft.VisualStudio.TestPlatform.Extensions.TrxLogger", "delaySign": true, "keyFile": "../../scripts/key.snk", - "warningsAsErrors": true + "warningsAsErrors": true, + "embed": [ "Resources/*.resx" ] }, "dependencies": { diff --git a/src/Microsoft.TestPlatform.ObjectModel/Client/DiscoveryCriteria.cs b/src/Microsoft.TestPlatform.ObjectModel/Client/DiscoveryCriteria.cs index 3b00162bb0..2a7b18a2e1 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/Client/DiscoveryCriteria.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/Client/DiscoveryCriteria.cs @@ -7,6 +7,8 @@ namespace Microsoft.VisualStudio.TestPlatform.ObjectModel.Client using System.Linq; using System.Runtime.Serialization; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Resources; + /// /// Defines the discovery criterion. /// diff --git a/src/Microsoft.TestPlatform.ObjectModel/Client/TestRunCriteria.cs b/src/Microsoft.TestPlatform.ObjectModel/Client/TestRunCriteria.cs index d9f0235f15..ecf1391f71 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/Client/TestRunCriteria.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/Client/TestRunCriteria.cs @@ -10,6 +10,7 @@ namespace Microsoft.VisualStudio.TestPlatform.ObjectModel.Client using System.Text; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.Interfaces; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Resources; /// /// Defines the testRun criterion diff --git a/src/Microsoft.TestPlatform.ObjectModel/DataCollector/Common/RequestId.cs b/src/Microsoft.TestPlatform.ObjectModel/DataCollector/Common/RequestId.cs index fce76eb99e..981a838e98 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/DataCollector/Common/RequestId.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/DataCollector/Common/RequestId.cs @@ -5,6 +5,8 @@ namespace Microsoft.VisualStudio.TestPlatform.ObjectModel.DataCollection using System; using System.Diagnostics.CodeAnalysis; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Resources; + /// /// Wrapper class for a request ID that can be used for messages or events for identification /// purposes diff --git a/src/Microsoft.TestPlatform.ObjectModel/DataCollector/DataCollectionRunSettings.cs b/src/Microsoft.TestPlatform.ObjectModel/DataCollector/DataCollectionRunSettings.cs index a1a646c52c..e29fdb7118 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/DataCollector/DataCollectionRunSettings.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/DataCollector/DataCollectionRunSettings.cs @@ -138,7 +138,7 @@ public static DataCollectionRunSettings CreateDataCollectionRunSettings( throw new SettingsException( string.Format( CultureInfo.CurrentCulture, - Resources.InvalidSettingsXmlAttribute, + Resources.Resources.InvalidSettingsXmlAttribute, dataCollectorsName, reader.Name)); } @@ -162,7 +162,7 @@ public static DataCollectionRunSettings CreateDataCollectionRunSettings( throw new SettingsException( string.Format( CultureInfo.CurrentCulture, - Resources.InvalidSettingsXmlElement, + Resources.Resources.InvalidSettingsXmlElement, dataCollectorsName, reader.Name)); } @@ -195,7 +195,7 @@ internal static List ReadListElementFromXml(XmlReader rea throw new SettingsException( string.Format( CultureInfo.CurrentCulture, - Resources.InvalidSettingsXmlAttribute, + Resources.Resources.InvalidSettingsXmlAttribute, dataCollectorsName, reader.Name)); } @@ -214,7 +214,7 @@ internal static List ReadListElementFromXml(XmlReader rea throw new SettingsException( string.Format( CultureInfo.CurrentCulture, - Resources.InvalidSettingsXmlElement, + Resources.Resources.InvalidSettingsXmlElement, dataCollectorsName, reader.Name)); } diff --git a/src/Microsoft.TestPlatform.ObjectModel/DataCollector/DataCollectorSettings.cs b/src/Microsoft.TestPlatform.ObjectModel/DataCollector/DataCollectorSettings.cs index c475d1a144..371669c93a 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/DataCollector/DataCollectorSettings.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/DataCollector/DataCollectorSettings.cs @@ -3,10 +3,7 @@ namespace Microsoft.VisualStudio.TestPlatform.ObjectModel { using System; - using System.Collections.Generic; using System.Globalization; - using System.Linq; - using System.Threading.Tasks; using System.Xml; /// @@ -159,7 +156,7 @@ internal static DataCollectorSettings FromXml(XmlReader reader) throw new SettingsException( String.Format( CultureInfo.CurrentCulture, - Resources.InvalidSettingsXmlAttribute, + Resources.Resources.InvalidSettingsXmlAttribute, Constants.DataCollectionRunSettingsName, reader.Name)); } @@ -170,14 +167,14 @@ internal static DataCollectorSettings FromXml(XmlReader reader) if (settings.Uri == null) { throw new SettingsException( - String.Format(CultureInfo.CurrentCulture, Resources.MissingDataCollectorAttributes, "Uri")); + String.Format(CultureInfo.CurrentCulture, Resources.Resources.MissingDataCollectorAttributes, "Uri")); } if (settings.AssemblyQualifiedName == null) { throw new SettingsException( String.Format( CultureInfo.CurrentCulture, - Resources.MissingDataCollectorAttributes, + Resources.Resources.MissingDataCollectorAttributes, "AssemblyQualifiedName")); } @@ -199,7 +196,7 @@ internal static DataCollectorSettings FromXml(XmlReader reader) throw new SettingsException( String.Format( CultureInfo.CurrentCulture, - Resources.InvalidSettingsXmlElement, + Resources.Resources.InvalidSettingsXmlElement, Constants.DataCollectionRunSettingsName, reader.Name)); } diff --git a/src/Microsoft.TestPlatform.ObjectModel/DataCollector/TransferInformation/FileTransferInformation.cs b/src/Microsoft.TestPlatform.ObjectModel/DataCollector/TransferInformation/FileTransferInformation.cs index be6b8682a0..0ce024bf2f 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/DataCollector/TransferInformation/FileTransferInformation.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/DataCollector/TransferInformation/FileTransferInformation.cs @@ -29,7 +29,7 @@ public FileTransferInformation(DataCollectionContext context, string path, bool // Make sure the file exists. if (!File.Exists(path)) { - throw new FileNotFoundException(string.Format(Resources.Common_FileNotExist, new object[] { path }), path); + throw new FileNotFoundException(string.Format(Resources.Resources.Common_FileNotExist, new object[] { path }), path); } // Make sure the path we have is a full path (not relative). diff --git a/src/Microsoft.TestPlatform.ObjectModel/DataCollector/TransferInformation/StreamTransferInformation.cs b/src/Microsoft.TestPlatform.ObjectModel/DataCollector/TransferInformation/StreamTransferInformation.cs index 65d26f6b12..87ff7ac7ab 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/DataCollector/TransferInformation/StreamTransferInformation.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/DataCollector/TransferInformation/StreamTransferInformation.cs @@ -29,26 +29,26 @@ public StreamTransferInformation(DataCollectionContext context, Stream stream, s if ((fileName == null) || (fileName = fileName.Trim()).Length == 0) { - throw new ArgumentException(Resources.Common_CannotBeNullOrEmpty, "fileName"); + throw new ArgumentException(Resources.Resources.Common_CannotBeNullOrEmpty, "fileName"); } // Make sure the filename provided is not a reserved filename. if (FileHelper.IsReservedFileName(fileName)) { - throw new ArgumentException(string.Format(Resources.DataCollectionSink_ReservedFilenameUsed, new object[] { fileName }), "fileName"); + throw new ArgumentException(string.Format(Resources.Resources.DataCollectionSink_ReservedFilenameUsed, new object[] { fileName }), "fileName"); } // Make sure just the filename was provided. string invalidCharacters; if (!FileHelper.IsValidFileName(fileName, out invalidCharacters)) { - throw new ArgumentException(string.Format(Resources.DataCollectionSink_InvalidFileNameCharacters, new object[] { fileName, invalidCharacters }), "fileName"); + throw new ArgumentException(string.Format(Resources.Resources.DataCollectionSink_InvalidFileNameCharacters, new object[] { fileName, invalidCharacters }), "fileName"); } // If we can not read the stream, throw. if (!stream.CanRead) { - throw new InvalidOperationException(Resources.DataCollectionSink_CanNotReadStream); + throw new InvalidOperationException(Resources.Resources.DataCollectionSink_CanNotReadStream); } Stream = stream; diff --git a/src/Microsoft.TestPlatform.ObjectModel/DefaultExecutorUriAttribute.cs b/src/Microsoft.TestPlatform.ObjectModel/DefaultExecutorUriAttribute.cs index 9c2040a37c..c88515ae82 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/DefaultExecutorUriAttribute.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/DefaultExecutorUriAttribute.cs @@ -4,6 +4,8 @@ namespace Microsoft.VisualStudio.TestPlatform.ObjectModel { using System; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Resources; + /// /// This attribute is applied on the discoverers to inform the framework about their default executor. /// diff --git a/src/Microsoft.TestPlatform.ObjectModel/ExtensionUriAttribute.cs b/src/Microsoft.TestPlatform.ObjectModel/ExtensionUriAttribute.cs index 9605eb552d..d203b54952 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/ExtensionUriAttribute.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/ExtensionUriAttribute.cs @@ -4,6 +4,8 @@ namespace Microsoft.VisualStudio.TestPlatform.ObjectModel { using System; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Resources; + /// /// This attribute is applied to extensions so they can be uniquely identified. /// It indicates the Uri which uniquely identifies the extension. If this attribute diff --git a/src/Microsoft.TestPlatform.ObjectModel/FileExtensionAttribute.cs b/src/Microsoft.TestPlatform.ObjectModel/FileExtensionAttribute.cs index 60b0de07bf..f360f179f6 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/FileExtensionAttribute.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/FileExtensionAttribute.cs @@ -4,6 +4,8 @@ namespace Microsoft.VisualStudio.TestPlatform.ObjectModel { using System; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Resources; + /// /// This attribute is applied to ITestDiscoverers. It indicates /// which file extensions the test discoverer knows how to process. diff --git a/src/Microsoft.TestPlatform.ObjectModel/FriendlyNameAttribute.cs b/src/Microsoft.TestPlatform.ObjectModel/FriendlyNameAttribute.cs index 782df7e060..699d73a26f 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/FriendlyNameAttribute.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/FriendlyNameAttribute.cs @@ -4,6 +4,8 @@ namespace Microsoft.VisualStudio.TestPlatform.ObjectModel { using System; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Resources; + /// /// This attribute is applied to Loggers so they can be uniquely identified. /// It indicates the Friendly Name which uniquely identifies the extension. diff --git a/src/Microsoft.TestPlatform.ObjectModel/Logging/Events/TestRunMessageEventArgs.cs b/src/Microsoft.TestPlatform.ObjectModel/Logging/Events/TestRunMessageEventArgs.cs index ce7928c70d..323e004861 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/Logging/Events/TestRunMessageEventArgs.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/Logging/Events/TestRunMessageEventArgs.cs @@ -5,6 +5,8 @@ namespace Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging using System; using System.Runtime.Serialization; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Resources; + /// /// Event arguments used for raising Test Run Message events. /// diff --git a/src/Microsoft.TestPlatform.ObjectModel/CommonResources.Designer.cs b/src/Microsoft.TestPlatform.ObjectModel/Resources/CommonResources.Designer.cs similarity index 93% rename from src/Microsoft.TestPlatform.ObjectModel/CommonResources.Designer.cs rename to src/Microsoft.TestPlatform.ObjectModel/Resources/CommonResources.Designer.cs index 269ec30bbf..2d70b03e38 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/CommonResources.Designer.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/CommonResources.Designer.cs @@ -1,4 +1,4 @@ -//------------------------------------------------------------------------------ +//------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.42000 @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace Microsoft.VisualStudio.TestPlatform.ObjectModel { +namespace Microsoft.VisualStudio.TestPlatform.ObjectModel.Resources { using System; using System.Reflection; @@ -38,7 +38,7 @@ internal CommonResources() { public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.TestPlatform.ObjectModel.CommonResources", typeof(CommonResources).GetTypeInfo().Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.TestPlatform.ObjectModel.Resources.CommonResources", typeof(CommonResources).GetTypeInfo().Assembly); resourceMan = temp; } return resourceMan; diff --git a/src/Microsoft.TestPlatform.ObjectModel/CommonResources.resx b/src/Microsoft.TestPlatform.ObjectModel/Resources/CommonResources.resx similarity index 100% rename from src/Microsoft.TestPlatform.ObjectModel/CommonResources.resx rename to src/Microsoft.TestPlatform.ObjectModel/Resources/CommonResources.resx diff --git a/src/Microsoft.TestPlatform.ObjectModel/CommonResources.tt b/src/Microsoft.TestPlatform.ObjectModel/Resources/CommonResources.tt similarity index 100% rename from src/Microsoft.TestPlatform.ObjectModel/CommonResources.tt rename to src/Microsoft.TestPlatform.ObjectModel/Resources/CommonResources.tt diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources.Designer.cs b/src/Microsoft.TestPlatform.ObjectModel/Resources/Resources.Designer.cs similarity index 99% rename from src/Microsoft.TestPlatform.ObjectModel/Resources.Designer.cs rename to src/Microsoft.TestPlatform.ObjectModel/Resources/Resources.Designer.cs index 71641eed47..a5c9da5997 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/Resources.Designer.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/Resources.Designer.cs @@ -1,4 +1,4 @@ -//------------------------------------------------------------------------------ +//------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.42000 @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace Microsoft.VisualStudio.TestPlatform.ObjectModel { +namespace Microsoft.VisualStudio.TestPlatform.ObjectModel.Resources { using System; using System.Reflection; @@ -38,7 +38,7 @@ internal Resources() { public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.TestPlatform.ObjectModel.Resources", typeof(Resources).GetTypeInfo().Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.TestPlatform.ObjectModel.Resources.Resources", typeof(Resources).GetTypeInfo().Assembly); resourceMan = temp; } return resourceMan; diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources.resx b/src/Microsoft.TestPlatform.ObjectModel/Resources/Resources.resx similarity index 100% rename from src/Microsoft.TestPlatform.ObjectModel/Resources.resx rename to src/Microsoft.TestPlatform.ObjectModel/Resources/Resources.resx diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.cs.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.cs.xlf new file mode 100644 index 0000000000..c2c24f25a5 --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.cs.xlf @@ -0,0 +1,22 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + + + + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.de.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.de.xlf new file mode 100644 index 0000000000..960b502277 --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.de.xlf @@ -0,0 +1,22 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + + + + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.es.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.es.xlf new file mode 100644 index 0000000000..f67b249274 --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.es.xlf @@ -0,0 +1,22 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + + + + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.fr.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.fr.xlf new file mode 100644 index 0000000000..76cdfcb21b --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.fr.xlf @@ -0,0 +1,22 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + + + + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.it.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.it.xlf new file mode 100644 index 0000000000..7ba4239885 --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.it.xlf @@ -0,0 +1,22 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + + + + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.ja.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.ja.xlf new file mode 100644 index 0000000000..d4cdd1d1d6 --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.ja.xlf @@ -0,0 +1,22 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + + + + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.ko.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.ko.xlf new file mode 100644 index 0000000000..f33a17d063 --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.ko.xlf @@ -0,0 +1,22 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + + + + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.pl.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.pl.xlf new file mode 100644 index 0000000000..b6edbcfd1b --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.pl.xlf @@ -0,0 +1,22 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + + + + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.pt-BR.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.pt-BR.xlf new file mode 100644 index 0000000000..979daff652 --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.pt-BR.xlf @@ -0,0 +1,22 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + + + + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.ru.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.ru.xlf new file mode 100644 index 0000000000..25c984b111 --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.ru.xlf @@ -0,0 +1,22 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + + + + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.tr.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.tr.xlf new file mode 100644 index 0000000000..f468fceeb5 --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.tr.xlf @@ -0,0 +1,22 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + + + + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.zh-Hans.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.zh-Hans.xlf new file mode 100644 index 0000000000..ee819ac6a5 --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.zh-Hans.xlf @@ -0,0 +1,22 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + + + + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.zh-Hant.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.zh-Hant.xlf new file mode 100644 index 0000000000..27bd234c14 --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.zh-Hant.xlf @@ -0,0 +1,22 @@ + + + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + + + + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.cs.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.cs.xlf new file mode 100644 index 0000000000..5feea2f5f2 --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.cs.xlf @@ -0,0 +1,323 @@ + + + + + + Failed + Failed + Test result for failed test + + + None + None + + + + Passed + Passed + Test result for passed test + + + {0,-10} {1} + {0,-10} {1} + + + + {0}: +{1} + {0}: +{1} + + + + Test Messages: +{0} + Test Messages: +{0} + + + + Message: {0} + Message: {0} + + + + StackTrace: +{0} + StackTrace: +{0} + + + + (null) + (null) + + + + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + + + + Column Number + Column Number + The label of the test property ColumnNumber for test case. + + + Executor Uri + Executor Uri + The label of the test property ExecutorUri for test case. + + + Source + Source + The label of the test property Source for test case. + + + Line Number + Line Number + The label of the test property LineNumber for test case. + + + Name + Name + The label of the test property Name for test case. + + + Computer Name + Computer Name + The label of the test property ComputerName for test result. + + + TestResult Display Name + TestResult Display Name + The label of TestResult.DisplayName, mainly used for parameterized data tests + + + Duration + Duration + The label of the test property Duration for test result. + + + End Time + End Time + The label of the test property EndTime for test result. + + + Error Column Number + Error Column Number + The label of the test property ErrorColumnNumber for test result. + + + Error Message + Error Message + The label of the test property ErrorMessage for test result. + + + Error Stack Trace + Error Stack Trace + The label of the test property ErrorStackTrace for test result. + + + Outcome + Outcome + The label of the test property Outcome for test result. + + + Start Time + Start Time + The label of the test property StartTime for test result. + + + Cannot find TypeConverter for type {0}. + Cannot find TypeConverter for type {0}. + + + + File Path + File Path + The label of the test property FilePath for test case. + + + Notification frequency need to be a positive value. + Notification frequency need to be a positive value. + frequency for DiscoveryCriteria/TestRunCriteria needs to be a positive value + + + Id + Id + + + + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + + + + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + + + + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + + + + NotFound + NotFound + Test result for not found test + + + Skipped + Skipped + Test result for skipped test + + + Notification timeout must be greater than zero. + Notification timeout must be greater than zero. + Timeout used during test discovery and execution must be greater than zero. + + + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + + + + The root node of the run settings must be named 'RunSettings'. + The root node of the run settings must be named 'RunSettings'. + + + + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + + + + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + + + + Could not find '{0}' node + Could not find '{0}' node + Error message when the specified {0} xml node can not be found in the run settings xml document + + + FullyQualifiedName + FullyQualifiedName + + + + Traits + Traits + The label of the test property Traits for test case. + + + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + File {0} does not exist. + File {0} does not exist. + + + + Object must be of type {0}. + Object must be of type {0}. + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + + + + The provided file name '{0}' contains the following invalid characters: '{1}'. + The provided file name '{0}' contains the following invalid characters: '{1}'. + + + + The provided file name '{0}' is reserved. + The provided file name '{0}' is reserved. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.de.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.de.xlf new file mode 100644 index 0000000000..4931a776bb --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.de.xlf @@ -0,0 +1,323 @@ + + + + + + Failed + Failed + Test result for failed test + + + None + None + + + + Passed + Passed + Test result for passed test + + + {0,-10} {1} + {0,-10} {1} + + + + {0}: +{1} + {0}: +{1} + + + + Test Messages: +{0} + Test Messages: +{0} + + + + Message: {0} + Message: {0} + + + + StackTrace: +{0} + StackTrace: +{0} + + + + (null) + (null) + + + + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + + + + Column Number + Column Number + The label of the test property ColumnNumber for test case. + + + Executor Uri + Executor Uri + The label of the test property ExecutorUri for test case. + + + Source + Source + The label of the test property Source for test case. + + + Line Number + Line Number + The label of the test property LineNumber for test case. + + + Name + Name + The label of the test property Name for test case. + + + Computer Name + Computer Name + The label of the test property ComputerName for test result. + + + TestResult Display Name + TestResult Display Name + The label of TestResult.DisplayName, mainly used for parameterized data tests + + + Duration + Duration + The label of the test property Duration for test result. + + + End Time + End Time + The label of the test property EndTime for test result. + + + Error Column Number + Error Column Number + The label of the test property ErrorColumnNumber for test result. + + + Error Message + Error Message + The label of the test property ErrorMessage for test result. + + + Error Stack Trace + Error Stack Trace + The label of the test property ErrorStackTrace for test result. + + + Outcome + Outcome + The label of the test property Outcome for test result. + + + Start Time + Start Time + The label of the test property StartTime for test result. + + + Cannot find TypeConverter for type {0}. + Cannot find TypeConverter for type {0}. + + + + File Path + File Path + The label of the test property FilePath for test case. + + + Notification frequency need to be a positive value. + Notification frequency need to be a positive value. + frequency for DiscoveryCriteria/TestRunCriteria needs to be a positive value + + + Id + Id + + + + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + + + + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + + + + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + + + + NotFound + NotFound + Test result for not found test + + + Skipped + Skipped + Test result for skipped test + + + Notification timeout must be greater than zero. + Notification timeout must be greater than zero. + Timeout used during test discovery and execution must be greater than zero. + + + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + + + + The root node of the run settings must be named 'RunSettings'. + The root node of the run settings must be named 'RunSettings'. + + + + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + + + + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + + + + Could not find '{0}' node + Could not find '{0}' node + Error message when the specified {0} xml node can not be found in the run settings xml document + + + FullyQualifiedName + FullyQualifiedName + + + + Traits + Traits + The label of the test property Traits for test case. + + + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + File {0} does not exist. + File {0} does not exist. + + + + Object must be of type {0}. + Object must be of type {0}. + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + + + + The provided file name '{0}' contains the following invalid characters: '{1}'. + The provided file name '{0}' contains the following invalid characters: '{1}'. + + + + The provided file name '{0}' is reserved. + The provided file name '{0}' is reserved. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.es.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.es.xlf new file mode 100644 index 0000000000..c583845efc --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.es.xlf @@ -0,0 +1,323 @@ + + + + + + Failed + Failed + Test result for failed test + + + None + None + + + + Passed + Passed + Test result for passed test + + + {0,-10} {1} + {0,-10} {1} + + + + {0}: +{1} + {0}: +{1} + + + + Test Messages: +{0} + Test Messages: +{0} + + + + Message: {0} + Message: {0} + + + + StackTrace: +{0} + StackTrace: +{0} + + + + (null) + (null) + + + + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + + + + Column Number + Column Number + The label of the test property ColumnNumber for test case. + + + Executor Uri + Executor Uri + The label of the test property ExecutorUri for test case. + + + Source + Source + The label of the test property Source for test case. + + + Line Number + Line Number + The label of the test property LineNumber for test case. + + + Name + Name + The label of the test property Name for test case. + + + Computer Name + Computer Name + The label of the test property ComputerName for test result. + + + TestResult Display Name + TestResult Display Name + The label of TestResult.DisplayName, mainly used for parameterized data tests + + + Duration + Duration + The label of the test property Duration for test result. + + + End Time + End Time + The label of the test property EndTime for test result. + + + Error Column Number + Error Column Number + The label of the test property ErrorColumnNumber for test result. + + + Error Message + Error Message + The label of the test property ErrorMessage for test result. + + + Error Stack Trace + Error Stack Trace + The label of the test property ErrorStackTrace for test result. + + + Outcome + Outcome + The label of the test property Outcome for test result. + + + Start Time + Start Time + The label of the test property StartTime for test result. + + + Cannot find TypeConverter for type {0}. + Cannot find TypeConverter for type {0}. + + + + File Path + File Path + The label of the test property FilePath for test case. + + + Notification frequency need to be a positive value. + Notification frequency need to be a positive value. + frequency for DiscoveryCriteria/TestRunCriteria needs to be a positive value + + + Id + Id + + + + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + + + + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + + + + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + + + + NotFound + NotFound + Test result for not found test + + + Skipped + Skipped + Test result for skipped test + + + Notification timeout must be greater than zero. + Notification timeout must be greater than zero. + Timeout used during test discovery and execution must be greater than zero. + + + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + + + + The root node of the run settings must be named 'RunSettings'. + The root node of the run settings must be named 'RunSettings'. + + + + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + + + + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + + + + Could not find '{0}' node + Could not find '{0}' node + Error message when the specified {0} xml node can not be found in the run settings xml document + + + FullyQualifiedName + FullyQualifiedName + + + + Traits + Traits + The label of the test property Traits for test case. + + + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + File {0} does not exist. + File {0} does not exist. + + + + Object must be of type {0}. + Object must be of type {0}. + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + + + + The provided file name '{0}' contains the following invalid characters: '{1}'. + The provided file name '{0}' contains the following invalid characters: '{1}'. + + + + The provided file name '{0}' is reserved. + The provided file name '{0}' is reserved. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.fr.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.fr.xlf new file mode 100644 index 0000000000..6de5b485bc --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.fr.xlf @@ -0,0 +1,323 @@ + + + + + + Failed + Failed + Test result for failed test + + + None + None + + + + Passed + Passed + Test result for passed test + + + {0,-10} {1} + {0,-10} {1} + + + + {0}: +{1} + {0}: +{1} + + + + Test Messages: +{0} + Test Messages: +{0} + + + + Message: {0} + Message: {0} + + + + StackTrace: +{0} + StackTrace: +{0} + + + + (null) + (null) + + + + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + + + + Column Number + Column Number + The label of the test property ColumnNumber for test case. + + + Executor Uri + Executor Uri + The label of the test property ExecutorUri for test case. + + + Source + Source + The label of the test property Source for test case. + + + Line Number + Line Number + The label of the test property LineNumber for test case. + + + Name + Name + The label of the test property Name for test case. + + + Computer Name + Computer Name + The label of the test property ComputerName for test result. + + + TestResult Display Name + TestResult Display Name + The label of TestResult.DisplayName, mainly used for parameterized data tests + + + Duration + Duration + The label of the test property Duration for test result. + + + End Time + End Time + The label of the test property EndTime for test result. + + + Error Column Number + Error Column Number + The label of the test property ErrorColumnNumber for test result. + + + Error Message + Error Message + The label of the test property ErrorMessage for test result. + + + Error Stack Trace + Error Stack Trace + The label of the test property ErrorStackTrace for test result. + + + Outcome + Outcome + The label of the test property Outcome for test result. + + + Start Time + Start Time + The label of the test property StartTime for test result. + + + Cannot find TypeConverter for type {0}. + Cannot find TypeConverter for type {0}. + + + + File Path + File Path + The label of the test property FilePath for test case. + + + Notification frequency need to be a positive value. + Notification frequency need to be a positive value. + frequency for DiscoveryCriteria/TestRunCriteria needs to be a positive value + + + Id + Id + + + + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + + + + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + + + + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + + + + NotFound + NotFound + Test result for not found test + + + Skipped + Skipped + Test result for skipped test + + + Notification timeout must be greater than zero. + Notification timeout must be greater than zero. + Timeout used during test discovery and execution must be greater than zero. + + + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + + + + The root node of the run settings must be named 'RunSettings'. + The root node of the run settings must be named 'RunSettings'. + + + + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + + + + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + + + + Could not find '{0}' node + Could not find '{0}' node + Error message when the specified {0} xml node can not be found in the run settings xml document + + + FullyQualifiedName + FullyQualifiedName + + + + Traits + Traits + The label of the test property Traits for test case. + + + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + File {0} does not exist. + File {0} does not exist. + + + + Object must be of type {0}. + Object must be of type {0}. + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + + + + The provided file name '{0}' contains the following invalid characters: '{1}'. + The provided file name '{0}' contains the following invalid characters: '{1}'. + + + + The provided file name '{0}' is reserved. + The provided file name '{0}' is reserved. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.it.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.it.xlf new file mode 100644 index 0000000000..ed1ffad529 --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.it.xlf @@ -0,0 +1,323 @@ + + + + + + Failed + Failed + Test result for failed test + + + None + None + + + + Passed + Passed + Test result for passed test + + + {0,-10} {1} + {0,-10} {1} + + + + {0}: +{1} + {0}: +{1} + + + + Test Messages: +{0} + Test Messages: +{0} + + + + Message: {0} + Message: {0} + + + + StackTrace: +{0} + StackTrace: +{0} + + + + (null) + (null) + + + + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + + + + Column Number + Column Number + The label of the test property ColumnNumber for test case. + + + Executor Uri + Executor Uri + The label of the test property ExecutorUri for test case. + + + Source + Source + The label of the test property Source for test case. + + + Line Number + Line Number + The label of the test property LineNumber for test case. + + + Name + Name + The label of the test property Name for test case. + + + Computer Name + Computer Name + The label of the test property ComputerName for test result. + + + TestResult Display Name + TestResult Display Name + The label of TestResult.DisplayName, mainly used for parameterized data tests + + + Duration + Duration + The label of the test property Duration for test result. + + + End Time + End Time + The label of the test property EndTime for test result. + + + Error Column Number + Error Column Number + The label of the test property ErrorColumnNumber for test result. + + + Error Message + Error Message + The label of the test property ErrorMessage for test result. + + + Error Stack Trace + Error Stack Trace + The label of the test property ErrorStackTrace for test result. + + + Outcome + Outcome + The label of the test property Outcome for test result. + + + Start Time + Start Time + The label of the test property StartTime for test result. + + + Cannot find TypeConverter for type {0}. + Cannot find TypeConverter for type {0}. + + + + File Path + File Path + The label of the test property FilePath for test case. + + + Notification frequency need to be a positive value. + Notification frequency need to be a positive value. + frequency for DiscoveryCriteria/TestRunCriteria needs to be a positive value + + + Id + Id + + + + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + + + + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + + + + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + + + + NotFound + NotFound + Test result for not found test + + + Skipped + Skipped + Test result for skipped test + + + Notification timeout must be greater than zero. + Notification timeout must be greater than zero. + Timeout used during test discovery and execution must be greater than zero. + + + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + + + + The root node of the run settings must be named 'RunSettings'. + The root node of the run settings must be named 'RunSettings'. + + + + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + + + + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + + + + Could not find '{0}' node + Could not find '{0}' node + Error message when the specified {0} xml node can not be found in the run settings xml document + + + FullyQualifiedName + FullyQualifiedName + + + + Traits + Traits + The label of the test property Traits for test case. + + + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + File {0} does not exist. + File {0} does not exist. + + + + Object must be of type {0}. + Object must be of type {0}. + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + + + + The provided file name '{0}' contains the following invalid characters: '{1}'. + The provided file name '{0}' contains the following invalid characters: '{1}'. + + + + The provided file name '{0}' is reserved. + The provided file name '{0}' is reserved. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.ja.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.ja.xlf new file mode 100644 index 0000000000..567579b2c3 --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.ja.xlf @@ -0,0 +1,323 @@ + + + + + + Failed + Failed + Test result for failed test + + + None + None + + + + Passed + Passed + Test result for passed test + + + {0,-10} {1} + {0,-10} {1} + + + + {0}: +{1} + {0}: +{1} + + + + Test Messages: +{0} + Test Messages: +{0} + + + + Message: {0} + Message: {0} + + + + StackTrace: +{0} + StackTrace: +{0} + + + + (null) + (null) + + + + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + + + + Column Number + Column Number + The label of the test property ColumnNumber for test case. + + + Executor Uri + Executor Uri + The label of the test property ExecutorUri for test case. + + + Source + Source + The label of the test property Source for test case. + + + Line Number + Line Number + The label of the test property LineNumber for test case. + + + Name + Name + The label of the test property Name for test case. + + + Computer Name + Computer Name + The label of the test property ComputerName for test result. + + + TestResult Display Name + TestResult Display Name + The label of TestResult.DisplayName, mainly used for parameterized data tests + + + Duration + Duration + The label of the test property Duration for test result. + + + End Time + End Time + The label of the test property EndTime for test result. + + + Error Column Number + Error Column Number + The label of the test property ErrorColumnNumber for test result. + + + Error Message + Error Message + The label of the test property ErrorMessage for test result. + + + Error Stack Trace + Error Stack Trace + The label of the test property ErrorStackTrace for test result. + + + Outcome + Outcome + The label of the test property Outcome for test result. + + + Start Time + Start Time + The label of the test property StartTime for test result. + + + Cannot find TypeConverter for type {0}. + Cannot find TypeConverter for type {0}. + + + + File Path + File Path + The label of the test property FilePath for test case. + + + Notification frequency need to be a positive value. + Notification frequency need to be a positive value. + frequency for DiscoveryCriteria/TestRunCriteria needs to be a positive value + + + Id + Id + + + + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + + + + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + + + + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + + + + NotFound + NotFound + Test result for not found test + + + Skipped + Skipped + Test result for skipped test + + + Notification timeout must be greater than zero. + Notification timeout must be greater than zero. + Timeout used during test discovery and execution must be greater than zero. + + + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + + + + The root node of the run settings must be named 'RunSettings'. + The root node of the run settings must be named 'RunSettings'. + + + + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + + + + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + + + + Could not find '{0}' node + Could not find '{0}' node + Error message when the specified {0} xml node can not be found in the run settings xml document + + + FullyQualifiedName + FullyQualifiedName + + + + Traits + Traits + The label of the test property Traits for test case. + + + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + File {0} does not exist. + File {0} does not exist. + + + + Object must be of type {0}. + Object must be of type {0}. + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + + + + The provided file name '{0}' contains the following invalid characters: '{1}'. + The provided file name '{0}' contains the following invalid characters: '{1}'. + + + + The provided file name '{0}' is reserved. + The provided file name '{0}' is reserved. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.ko.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.ko.xlf new file mode 100644 index 0000000000..c3efb6a63d --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.ko.xlf @@ -0,0 +1,323 @@ + + + + + + Failed + Failed + Test result for failed test + + + None + None + + + + Passed + Passed + Test result for passed test + + + {0,-10} {1} + {0,-10} {1} + + + + {0}: +{1} + {0}: +{1} + + + + Test Messages: +{0} + Test Messages: +{0} + + + + Message: {0} + Message: {0} + + + + StackTrace: +{0} + StackTrace: +{0} + + + + (null) + (null) + + + + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + + + + Column Number + Column Number + The label of the test property ColumnNumber for test case. + + + Executor Uri + Executor Uri + The label of the test property ExecutorUri for test case. + + + Source + Source + The label of the test property Source for test case. + + + Line Number + Line Number + The label of the test property LineNumber for test case. + + + Name + Name + The label of the test property Name for test case. + + + Computer Name + Computer Name + The label of the test property ComputerName for test result. + + + TestResult Display Name + TestResult Display Name + The label of TestResult.DisplayName, mainly used for parameterized data tests + + + Duration + Duration + The label of the test property Duration for test result. + + + End Time + End Time + The label of the test property EndTime for test result. + + + Error Column Number + Error Column Number + The label of the test property ErrorColumnNumber for test result. + + + Error Message + Error Message + The label of the test property ErrorMessage for test result. + + + Error Stack Trace + Error Stack Trace + The label of the test property ErrorStackTrace for test result. + + + Outcome + Outcome + The label of the test property Outcome for test result. + + + Start Time + Start Time + The label of the test property StartTime for test result. + + + Cannot find TypeConverter for type {0}. + Cannot find TypeConverter for type {0}. + + + + File Path + File Path + The label of the test property FilePath for test case. + + + Notification frequency need to be a positive value. + Notification frequency need to be a positive value. + frequency for DiscoveryCriteria/TestRunCriteria needs to be a positive value + + + Id + Id + + + + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + + + + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + + + + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + + + + NotFound + NotFound + Test result for not found test + + + Skipped + Skipped + Test result for skipped test + + + Notification timeout must be greater than zero. + Notification timeout must be greater than zero. + Timeout used during test discovery and execution must be greater than zero. + + + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + + + + The root node of the run settings must be named 'RunSettings'. + The root node of the run settings must be named 'RunSettings'. + + + + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + + + + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + + + + Could not find '{0}' node + Could not find '{0}' node + Error message when the specified {0} xml node can not be found in the run settings xml document + + + FullyQualifiedName + FullyQualifiedName + + + + Traits + Traits + The label of the test property Traits for test case. + + + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + File {0} does not exist. + File {0} does not exist. + + + + Object must be of type {0}. + Object must be of type {0}. + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + + + + The provided file name '{0}' contains the following invalid characters: '{1}'. + The provided file name '{0}' contains the following invalid characters: '{1}'. + + + + The provided file name '{0}' is reserved. + The provided file name '{0}' is reserved. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.pl.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.pl.xlf new file mode 100644 index 0000000000..d945661057 --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.pl.xlf @@ -0,0 +1,323 @@ + + + + + + Failed + Failed + Test result for failed test + + + None + None + + + + Passed + Passed + Test result for passed test + + + {0,-10} {1} + {0,-10} {1} + + + + {0}: +{1} + {0}: +{1} + + + + Test Messages: +{0} + Test Messages: +{0} + + + + Message: {0} + Message: {0} + + + + StackTrace: +{0} + StackTrace: +{0} + + + + (null) + (null) + + + + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + + + + Column Number + Column Number + The label of the test property ColumnNumber for test case. + + + Executor Uri + Executor Uri + The label of the test property ExecutorUri for test case. + + + Source + Source + The label of the test property Source for test case. + + + Line Number + Line Number + The label of the test property LineNumber for test case. + + + Name + Name + The label of the test property Name for test case. + + + Computer Name + Computer Name + The label of the test property ComputerName for test result. + + + TestResult Display Name + TestResult Display Name + The label of TestResult.DisplayName, mainly used for parameterized data tests + + + Duration + Duration + The label of the test property Duration for test result. + + + End Time + End Time + The label of the test property EndTime for test result. + + + Error Column Number + Error Column Number + The label of the test property ErrorColumnNumber for test result. + + + Error Message + Error Message + The label of the test property ErrorMessage for test result. + + + Error Stack Trace + Error Stack Trace + The label of the test property ErrorStackTrace for test result. + + + Outcome + Outcome + The label of the test property Outcome for test result. + + + Start Time + Start Time + The label of the test property StartTime for test result. + + + Cannot find TypeConverter for type {0}. + Cannot find TypeConverter for type {0}. + + + + File Path + File Path + The label of the test property FilePath for test case. + + + Notification frequency need to be a positive value. + Notification frequency need to be a positive value. + frequency for DiscoveryCriteria/TestRunCriteria needs to be a positive value + + + Id + Id + + + + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + + + + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + + + + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + + + + NotFound + NotFound + Test result for not found test + + + Skipped + Skipped + Test result for skipped test + + + Notification timeout must be greater than zero. + Notification timeout must be greater than zero. + Timeout used during test discovery and execution must be greater than zero. + + + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + + + + The root node of the run settings must be named 'RunSettings'. + The root node of the run settings must be named 'RunSettings'. + + + + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + + + + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + + + + Could not find '{0}' node + Could not find '{0}' node + Error message when the specified {0} xml node can not be found in the run settings xml document + + + FullyQualifiedName + FullyQualifiedName + + + + Traits + Traits + The label of the test property Traits for test case. + + + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + File {0} does not exist. + File {0} does not exist. + + + + Object must be of type {0}. + Object must be of type {0}. + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + + + + The provided file name '{0}' contains the following invalid characters: '{1}'. + The provided file name '{0}' contains the following invalid characters: '{1}'. + + + + The provided file name '{0}' is reserved. + The provided file name '{0}' is reserved. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.pt-BR.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.pt-BR.xlf new file mode 100644 index 0000000000..8ab28cb18b --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.pt-BR.xlf @@ -0,0 +1,323 @@ + + + + + + Failed + Failed + Test result for failed test + + + None + None + + + + Passed + Passed + Test result for passed test + + + {0,-10} {1} + {0,-10} {1} + + + + {0}: +{1} + {0}: +{1} + + + + Test Messages: +{0} + Test Messages: +{0} + + + + Message: {0} + Message: {0} + + + + StackTrace: +{0} + StackTrace: +{0} + + + + (null) + (null) + + + + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + + + + Column Number + Column Number + The label of the test property ColumnNumber for test case. + + + Executor Uri + Executor Uri + The label of the test property ExecutorUri for test case. + + + Source + Source + The label of the test property Source for test case. + + + Line Number + Line Number + The label of the test property LineNumber for test case. + + + Name + Name + The label of the test property Name for test case. + + + Computer Name + Computer Name + The label of the test property ComputerName for test result. + + + TestResult Display Name + TestResult Display Name + The label of TestResult.DisplayName, mainly used for parameterized data tests + + + Duration + Duration + The label of the test property Duration for test result. + + + End Time + End Time + The label of the test property EndTime for test result. + + + Error Column Number + Error Column Number + The label of the test property ErrorColumnNumber for test result. + + + Error Message + Error Message + The label of the test property ErrorMessage for test result. + + + Error Stack Trace + Error Stack Trace + The label of the test property ErrorStackTrace for test result. + + + Outcome + Outcome + The label of the test property Outcome for test result. + + + Start Time + Start Time + The label of the test property StartTime for test result. + + + Cannot find TypeConverter for type {0}. + Cannot find TypeConverter for type {0}. + + + + File Path + File Path + The label of the test property FilePath for test case. + + + Notification frequency need to be a positive value. + Notification frequency need to be a positive value. + frequency for DiscoveryCriteria/TestRunCriteria needs to be a positive value + + + Id + Id + + + + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + + + + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + + + + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + + + + NotFound + NotFound + Test result for not found test + + + Skipped + Skipped + Test result for skipped test + + + Notification timeout must be greater than zero. + Notification timeout must be greater than zero. + Timeout used during test discovery and execution must be greater than zero. + + + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + + + + The root node of the run settings must be named 'RunSettings'. + The root node of the run settings must be named 'RunSettings'. + + + + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + + + + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + + + + Could not find '{0}' node + Could not find '{0}' node + Error message when the specified {0} xml node can not be found in the run settings xml document + + + FullyQualifiedName + FullyQualifiedName + + + + Traits + Traits + The label of the test property Traits for test case. + + + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + File {0} does not exist. + File {0} does not exist. + + + + Object must be of type {0}. + Object must be of type {0}. + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + + + + The provided file name '{0}' contains the following invalid characters: '{1}'. + The provided file name '{0}' contains the following invalid characters: '{1}'. + + + + The provided file name '{0}' is reserved. + The provided file name '{0}' is reserved. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.ru.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.ru.xlf new file mode 100644 index 0000000000..a748573458 --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.ru.xlf @@ -0,0 +1,323 @@ + + + + + + Failed + Failed + Test result for failed test + + + None + None + + + + Passed + Passed + Test result for passed test + + + {0,-10} {1} + {0,-10} {1} + + + + {0}: +{1} + {0}: +{1} + + + + Test Messages: +{0} + Test Messages: +{0} + + + + Message: {0} + Message: {0} + + + + StackTrace: +{0} + StackTrace: +{0} + + + + (null) + (null) + + + + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + + + + Column Number + Column Number + The label of the test property ColumnNumber for test case. + + + Executor Uri + Executor Uri + The label of the test property ExecutorUri for test case. + + + Source + Source + The label of the test property Source for test case. + + + Line Number + Line Number + The label of the test property LineNumber for test case. + + + Name + Name + The label of the test property Name for test case. + + + Computer Name + Computer Name + The label of the test property ComputerName for test result. + + + TestResult Display Name + TestResult Display Name + The label of TestResult.DisplayName, mainly used for parameterized data tests + + + Duration + Duration + The label of the test property Duration for test result. + + + End Time + End Time + The label of the test property EndTime for test result. + + + Error Column Number + Error Column Number + The label of the test property ErrorColumnNumber for test result. + + + Error Message + Error Message + The label of the test property ErrorMessage for test result. + + + Error Stack Trace + Error Stack Trace + The label of the test property ErrorStackTrace for test result. + + + Outcome + Outcome + The label of the test property Outcome for test result. + + + Start Time + Start Time + The label of the test property StartTime for test result. + + + Cannot find TypeConverter for type {0}. + Cannot find TypeConverter for type {0}. + + + + File Path + File Path + The label of the test property FilePath for test case. + + + Notification frequency need to be a positive value. + Notification frequency need to be a positive value. + frequency for DiscoveryCriteria/TestRunCriteria needs to be a positive value + + + Id + Id + + + + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + + + + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + + + + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + + + + NotFound + NotFound + Test result for not found test + + + Skipped + Skipped + Test result for skipped test + + + Notification timeout must be greater than zero. + Notification timeout must be greater than zero. + Timeout used during test discovery and execution must be greater than zero. + + + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + + + + The root node of the run settings must be named 'RunSettings'. + The root node of the run settings must be named 'RunSettings'. + + + + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + + + + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + + + + Could not find '{0}' node + Could not find '{0}' node + Error message when the specified {0} xml node can not be found in the run settings xml document + + + FullyQualifiedName + FullyQualifiedName + + + + Traits + Traits + The label of the test property Traits for test case. + + + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + File {0} does not exist. + File {0} does not exist. + + + + Object must be of type {0}. + Object must be of type {0}. + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + + + + The provided file name '{0}' contains the following invalid characters: '{1}'. + The provided file name '{0}' contains the following invalid characters: '{1}'. + + + + The provided file name '{0}' is reserved. + The provided file name '{0}' is reserved. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.tr.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.tr.xlf new file mode 100644 index 0000000000..7bbe67d949 --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.tr.xlf @@ -0,0 +1,323 @@ + + + + + + Failed + Failed + Test result for failed test + + + None + None + + + + Passed + Passed + Test result for passed test + + + {0,-10} {1} + {0,-10} {1} + + + + {0}: +{1} + {0}: +{1} + + + + Test Messages: +{0} + Test Messages: +{0} + + + + Message: {0} + Message: {0} + + + + StackTrace: +{0} + StackTrace: +{0} + + + + (null) + (null) + + + + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + + + + Column Number + Column Number + The label of the test property ColumnNumber for test case. + + + Executor Uri + Executor Uri + The label of the test property ExecutorUri for test case. + + + Source + Source + The label of the test property Source for test case. + + + Line Number + Line Number + The label of the test property LineNumber for test case. + + + Name + Name + The label of the test property Name for test case. + + + Computer Name + Computer Name + The label of the test property ComputerName for test result. + + + TestResult Display Name + TestResult Display Name + The label of TestResult.DisplayName, mainly used for parameterized data tests + + + Duration + Duration + The label of the test property Duration for test result. + + + End Time + End Time + The label of the test property EndTime for test result. + + + Error Column Number + Error Column Number + The label of the test property ErrorColumnNumber for test result. + + + Error Message + Error Message + The label of the test property ErrorMessage for test result. + + + Error Stack Trace + Error Stack Trace + The label of the test property ErrorStackTrace for test result. + + + Outcome + Outcome + The label of the test property Outcome for test result. + + + Start Time + Start Time + The label of the test property StartTime for test result. + + + Cannot find TypeConverter for type {0}. + Cannot find TypeConverter for type {0}. + + + + File Path + File Path + The label of the test property FilePath for test case. + + + Notification frequency need to be a positive value. + Notification frequency need to be a positive value. + frequency for DiscoveryCriteria/TestRunCriteria needs to be a positive value + + + Id + Id + + + + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + + + + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + + + + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + + + + NotFound + NotFound + Test result for not found test + + + Skipped + Skipped + Test result for skipped test + + + Notification timeout must be greater than zero. + Notification timeout must be greater than zero. + Timeout used during test discovery and execution must be greater than zero. + + + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + + + + The root node of the run settings must be named 'RunSettings'. + The root node of the run settings must be named 'RunSettings'. + + + + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + + + + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + + + + Could not find '{0}' node + Could not find '{0}' node + Error message when the specified {0} xml node can not be found in the run settings xml document + + + FullyQualifiedName + FullyQualifiedName + + + + Traits + Traits + The label of the test property Traits for test case. + + + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + File {0} does not exist. + File {0} does not exist. + + + + Object must be of type {0}. + Object must be of type {0}. + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + + + + The provided file name '{0}' contains the following invalid characters: '{1}'. + The provided file name '{0}' contains the following invalid characters: '{1}'. + + + + The provided file name '{0}' is reserved. + The provided file name '{0}' is reserved. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.zh-Hans.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.zh-Hans.xlf new file mode 100644 index 0000000000..76636c16b0 --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.zh-Hans.xlf @@ -0,0 +1,323 @@ + + + + + + Failed + Failed + Test result for failed test + + + None + None + + + + Passed + Passed + Test result for passed test + + + {0,-10} {1} + {0,-10} {1} + + + + {0}: +{1} + {0}: +{1} + + + + Test Messages: +{0} + Test Messages: +{0} + + + + Message: {0} + Message: {0} + + + + StackTrace: +{0} + StackTrace: +{0} + + + + (null) + (null) + + + + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + + + + Column Number + Column Number + The label of the test property ColumnNumber for test case. + + + Executor Uri + Executor Uri + The label of the test property ExecutorUri for test case. + + + Source + Source + The label of the test property Source for test case. + + + Line Number + Line Number + The label of the test property LineNumber for test case. + + + Name + Name + The label of the test property Name for test case. + + + Computer Name + Computer Name + The label of the test property ComputerName for test result. + + + TestResult Display Name + TestResult Display Name + The label of TestResult.DisplayName, mainly used for parameterized data tests + + + Duration + Duration + The label of the test property Duration for test result. + + + End Time + End Time + The label of the test property EndTime for test result. + + + Error Column Number + Error Column Number + The label of the test property ErrorColumnNumber for test result. + + + Error Message + Error Message + The label of the test property ErrorMessage for test result. + + + Error Stack Trace + Error Stack Trace + The label of the test property ErrorStackTrace for test result. + + + Outcome + Outcome + The label of the test property Outcome for test result. + + + Start Time + Start Time + The label of the test property StartTime for test result. + + + Cannot find TypeConverter for type {0}. + Cannot find TypeConverter for type {0}. + + + + File Path + File Path + The label of the test property FilePath for test case. + + + Notification frequency need to be a positive value. + Notification frequency need to be a positive value. + frequency for DiscoveryCriteria/TestRunCriteria needs to be a positive value + + + Id + Id + + + + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + + + + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + + + + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + + + + NotFound + NotFound + Test result for not found test + + + Skipped + Skipped + Test result for skipped test + + + Notification timeout must be greater than zero. + Notification timeout must be greater than zero. + Timeout used during test discovery and execution must be greater than zero. + + + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + + + + The root node of the run settings must be named 'RunSettings'. + The root node of the run settings must be named 'RunSettings'. + + + + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + + + + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + + + + Could not find '{0}' node + Could not find '{0}' node + Error message when the specified {0} xml node can not be found in the run settings xml document + + + FullyQualifiedName + FullyQualifiedName + + + + Traits + Traits + The label of the test property Traits for test case. + + + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + File {0} does not exist. + File {0} does not exist. + + + + Object must be of type {0}. + Object must be of type {0}. + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + + + + The provided file name '{0}' contains the following invalid characters: '{1}'. + The provided file name '{0}' contains the following invalid characters: '{1}'. + + + + The provided file name '{0}' is reserved. + The provided file name '{0}' is reserved. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.zh-Hant.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.zh-Hant.xlf new file mode 100644 index 0000000000..c4f93142f8 --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.zh-Hant.xlf @@ -0,0 +1,323 @@ + + + + + + Failed + Failed + Test result for failed test + + + None + None + + + + Passed + Passed + Test result for passed test + + + {0,-10} {1} + {0,-10} {1} + + + + {0}: +{1} + {0}: +{1} + + + + Test Messages: +{0} + Test Messages: +{0} + + + + Message: {0} + Message: {0} + + + + StackTrace: +{0} + StackTrace: +{0} + + + + (null) + (null) + + + + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + + + + Column Number + Column Number + The label of the test property ColumnNumber for test case. + + + Executor Uri + Executor Uri + The label of the test property ExecutorUri for test case. + + + Source + Source + The label of the test property Source for test case. + + + Line Number + Line Number + The label of the test property LineNumber for test case. + + + Name + Name + The label of the test property Name for test case. + + + Computer Name + Computer Name + The label of the test property ComputerName for test result. + + + TestResult Display Name + TestResult Display Name + The label of TestResult.DisplayName, mainly used for parameterized data tests + + + Duration + Duration + The label of the test property Duration for test result. + + + End Time + End Time + The label of the test property EndTime for test result. + + + Error Column Number + Error Column Number + The label of the test property ErrorColumnNumber for test result. + + + Error Message + Error Message + The label of the test property ErrorMessage for test result. + + + Error Stack Trace + Error Stack Trace + The label of the test property ErrorStackTrace for test result. + + + Outcome + Outcome + The label of the test property Outcome for test result. + + + Start Time + Start Time + The label of the test property StartTime for test result. + + + Cannot find TypeConverter for type {0}. + Cannot find TypeConverter for type {0}. + + + + File Path + File Path + The label of the test property FilePath for test case. + + + Notification frequency need to be a positive value. + Notification frequency need to be a positive value. + frequency for DiscoveryCriteria/TestRunCriteria needs to be a positive value + + + Id + Id + + + + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + + + + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + + + + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + + + + NotFound + NotFound + Test result for not found test + + + Skipped + Skipped + Test result for skipped test + + + Notification timeout must be greater than zero. + Notification timeout must be greater than zero. + Timeout used during test discovery and execution must be greater than zero. + + + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + + + + The root node of the run settings must be named 'RunSettings'. + The root node of the run settings must be named 'RunSettings'. + + + + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + + + + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + + + + Could not find '{0}' node + Could not find '{0}' node + Error message when the specified {0} xml node can not be found in the run settings xml document + + + FullyQualifiedName + FullyQualifiedName + + + + Traits + Traits + The label of the test property Traits for test case. + + + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + + + + The parameter cannot be null or empty. + The parameter cannot be null or empty. + + + + File {0} does not exist. + File {0} does not exist. + + + + Object must be of type {0}. + Object must be of type {0}. + + + + Aborted + Aborted + + + + Completed + Completed + + + + Disconnected + Disconnected + + + + Error + Error + + + + Failed + Failed + + + + Inconclusive + Inconclusive + + + + In Progress + In Progress + + + + Not Executed + Not Executed + + + + Not Runnable + Not Runnable + + + + Passed + Passed + + + + Passed (run aborted) + Passed (run aborted) + + + + Pending + Pending + + + + Timeout + Timeout + + + + Warning + Warning + + + + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + + + + The provided file name '{0}' contains the following invalid characters: '{1}'. + The provided file name '{0}' contains the following invalid characters: '{1}'. + + + + The provided file name '{0}' is reserved. + The provided file name '{0}' is reserved. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.ObjectModel/RunSettings/RunConfiguration.cs b/src/Microsoft.TestPlatform.ObjectModel/RunSettings/RunConfiguration.cs index 92790a87d0..2819ddcc86 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/RunSettings/RunConfiguration.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/RunSettings/RunConfiguration.cs @@ -377,7 +377,7 @@ public static RunConfiguration FromXml(XmlReader reader) throw new SettingsException( string.Format( CultureInfo.CurrentCulture, - Resources.InvalidSettingsIncorrectValue, + Resources.Resources.InvalidSettingsIncorrectValue, Constants.RunConfigurationSettingsName, cpuCount, elementName)); @@ -394,7 +394,7 @@ public static RunConfiguration FromXml(XmlReader reader) if (!bool.TryParse(disableAppDomainValueString, out disableAppDomainCheck)) { throw new SettingsException(String.Format(CultureInfo.CurrentCulture, - Resources.InvalidSettingsIncorrectValue, Constants.RunConfigurationSettingsName, disableAppDomainValueString, elementName)); + Resources.Resources.InvalidSettingsIncorrectValue, Constants.RunConfigurationSettingsName, disableAppDomainValueString, elementName)); } runConfiguration.DisableAppDomain = disableAppDomainCheck; break; @@ -407,7 +407,7 @@ public static RunConfiguration FromXml(XmlReader reader) if (!bool.TryParse(disableParallelizationValueString, out disableParallelizationCheck)) { throw new SettingsException(String.Format(CultureInfo.CurrentCulture, - Resources.InvalidSettingsIncorrectValue, Constants.RunConfigurationSettingsName, disableParallelizationValueString, elementName)); + Resources.Resources.InvalidSettingsIncorrectValue, Constants.RunConfigurationSettingsName, disableParallelizationValueString, elementName)); } runConfiguration.DisableParallelization = disableParallelizationCheck; break; @@ -424,7 +424,7 @@ public static RunConfiguration FromXml(XmlReader reader) throw new SettingsException( string.Format( CultureInfo.CurrentCulture, - Resources.InvalidSettingsIncorrectValue, + Resources.Resources.InvalidSettingsIncorrectValue, Constants.RunConfigurationSettingsName, value, elementName)); @@ -433,7 +433,7 @@ public static RunConfiguration FromXml(XmlReader reader) catch (ArgumentException) { throw new SettingsException(string.Format(CultureInfo.CurrentCulture, - Resources.InvalidSettingsIncorrectValue, Constants.RunConfigurationSettingsName, value, elementName)); + Resources.Resources.InvalidSettingsIncorrectValue, Constants.RunConfigurationSettingsName, value, elementName)); } runConfiguration.TargetPlatform = archType; @@ -452,7 +452,7 @@ public static RunConfiguration FromXml(XmlReader reader) throw new SettingsException( string.Format( CultureInfo.CurrentCulture, - Resources.InvalidSettingsIncorrectValue, + Resources.Resources.InvalidSettingsIncorrectValue, Constants.RunConfigurationSettingsName, value, elementName)); @@ -461,7 +461,7 @@ public static RunConfiguration FromXml(XmlReader reader) catch (ArgumentException) { throw new SettingsException(string.Format(CultureInfo.CurrentCulture, - Resources.InvalidSettingsIncorrectValue, Constants.RunConfigurationSettingsName, value, elementName)); + Resources.Resources.InvalidSettingsIncorrectValue, Constants.RunConfigurationSettingsName, value, elementName)); } runConfiguration.TargetFrameworkVersion = frameworkType; @@ -485,12 +485,12 @@ public static RunConfiguration FromXml(XmlReader reader) catch (ArgumentException) { throw new SettingsException(string.Format(CultureInfo.CurrentCulture, - Resources.InvalidSettingsIncorrectValue, Constants.RunConfigurationSettingsName, value, elementName)); + Resources.Resources.InvalidSettingsIncorrectValue, Constants.RunConfigurationSettingsName, value, elementName)); } catch (FormatException) { throw new SettingsException(string.Format(CultureInfo.CurrentCulture, - Resources.InvalidSettingsIncorrectValue, Constants.RunConfigurationSettingsName, value, elementName)); + Resources.Resources.InvalidSettingsIncorrectValue, Constants.RunConfigurationSettingsName, value, elementName)); } runConfiguration.TreatTestAdapterErrorsAsWarnings = treatTestAdapterErrorsAsWarnings; @@ -504,7 +504,7 @@ public static RunConfiguration FromXml(XmlReader reader) { if (EqtTrace.IsErrorEnabled) { - EqtTrace.Error(string.Format(CultureInfo.CurrentCulture, Resources.SolutionDirectoryNotExists, solutionDirectory)); + EqtTrace.Error(string.Format(CultureInfo.CurrentCulture, Resources.Resources.SolutionDirectoryNotExists, solutionDirectory)); } solutionDirectory = null; @@ -523,7 +523,7 @@ public static RunConfiguration FromXml(XmlReader reader) throw new SettingsException( string.Format( CultureInfo.CurrentCulture, - Resources.InvalidSettingsXmlElement, + Resources.Resources.InvalidSettingsXmlElement, Constants.RunConfigurationSettingsName, reader.Name)); } diff --git a/src/Microsoft.TestPlatform.ObjectModel/RunSettings/SettingsNameAttribute.cs b/src/Microsoft.TestPlatform.ObjectModel/RunSettings/SettingsNameAttribute.cs index 75093b885d..1a1847cc16 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/RunSettings/SettingsNameAttribute.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/RunSettings/SettingsNameAttribute.cs @@ -4,6 +4,8 @@ namespace Microsoft.VisualStudio.TestPlatform.ObjectModel { using System; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Resources; + /// /// Attribute applied to ISettingsProviders to associate it with a settings /// name. This name will be used to request the settings from the RunSettings. diff --git a/src/Microsoft.TestPlatform.ObjectModel/RunSettings/TestRunParameters.cs b/src/Microsoft.TestPlatform.ObjectModel/RunSettings/TestRunParameters.cs index b330c3d2a3..bccf08fe9d 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/RunSettings/TestRunParameters.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/RunSettings/TestRunParameters.cs @@ -60,7 +60,7 @@ internal static Dictionary FromXml(XmlReader reader) throw new SettingsException( string.Format( CultureInfo.CurrentCulture, - Resources.InvalidSettingsXmlElement, + Resources.Resources.InvalidSettingsXmlElement, Constants.TestRunParametersName, reader.Name)); } diff --git a/src/Microsoft.TestPlatform.ObjectModel/TestObject.cs b/src/Microsoft.TestPlatform.ObjectModel/TestObject.cs index fb32f457ad..e1eb9d5010 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/TestObject.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/TestObject.cs @@ -289,7 +289,7 @@ private static object ConvertPropertyFrom(TestProperty property, CultureInfo TypeConverter converter = TypeDescriptor.GetConverter(valueType); if (converter == null) { - throw new NotSupportedException(string.Format(CultureInfo.CurrentCulture, Resources.ConverterNotSupported, valueType.Name)); + throw new NotSupportedException(string.Format(CultureInfo.CurrentCulture, Resources.Resources.ConverterNotSupported, valueType.Name)); } try @@ -337,7 +337,7 @@ private static T ConvertPropertyTo(TestProperty property, CultureInfo culture if (converter == null) { - throw new NotSupportedException(string.Format(CultureInfo.CurrentCulture, Resources.ConverterNotSupported, valueType.Name)); + throw new NotSupportedException(string.Format(CultureInfo.CurrentCulture, Resources.Resources.ConverterNotSupported, valueType.Name)); } try diff --git a/src/Microsoft.TestPlatform.ObjectModel/TestOutcomeHelper.cs b/src/Microsoft.TestPlatform.ObjectModel/TestOutcomeHelper.cs index 1ff16c808b..15ce04e355 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/TestOutcomeHelper.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/TestOutcomeHelper.cs @@ -21,19 +21,19 @@ public static string GetOutcomeString(TestOutcome outcome) switch (outcome) { case TestOutcome.None: - result = Resources.TestOutcomeNone; + result = Resources.Resources.TestOutcomeNone; break; case TestOutcome.Passed: - result = Resources.TestOutcomePassed; + result = Resources.Resources.TestOutcomePassed; break; case TestOutcome.Failed: - result = Resources.TestOutcomeFailed; + result = Resources.Resources.TestOutcomeFailed; break; case TestOutcome.Skipped: - result = Resources.TestOutcomeSkipped; + result = Resources.Resources.TestOutcomeSkipped; break; case TestOutcome.NotFound: - result = Resources.TestOutcomeNotFound; + result = Resources.Resources.TestOutcomeNotFound; break; default: throw new ArgumentOutOfRangeException("outcome"); diff --git a/src/Microsoft.TestPlatform.ObjectModel/TestProperty/TestProperty.cs b/src/Microsoft.TestPlatform.ObjectModel/TestProperty/TestProperty.cs index 23d3ed8cc7..ea41e624b1 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/TestProperty/TestProperty.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/TestProperty/TestProperty.cs @@ -63,7 +63,7 @@ private TestProperty(string id, string label, string category, string descriptio } else { - throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Resources.UnexpectedTypeOfProperty, valueType, id)); + throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Resources.Resources.UnexpectedTypeOfProperty, valueType, id)); } this.Id = id; @@ -345,7 +345,7 @@ public static TestProperty Register(string id, string label, string category, st // not the data valueType we expect, throw an exception string message = string.Format( CultureInfo.CurrentCulture, - Resources.Exception_RegisteredTestPropertyHasDifferentValueType, + Resources.Resources.Exception_RegisteredTestPropertyHasDifferentValueType, id, valueType.ToString(), propertyTypePair.Key.ValueType); diff --git a/src/Microsoft.TestPlatform.ObjectModel/TestResult.cs b/src/Microsoft.TestPlatform.ObjectModel/TestResult.cs index 4ea3513db0..2212e49a44 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/TestResult.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/TestResult.cs @@ -216,7 +216,7 @@ public override string ToString() // Add the outcome of the test and the name of the test. result.AppendFormat( CultureInfo.CurrentUICulture, - Resources.BasicTestResultFormat, + Resources.Resources.BasicTestResultFormat, this.TestCase.DisplayName, TestOutcomeHelper.GetOutcomeString(this.Outcome)); @@ -225,7 +225,7 @@ public override string ToString() { // Add Error message. result.AppendLine(); - result.AppendFormat(CultureInfo.CurrentUICulture, Resources.TestFailureMessageFormat, this.ErrorMessage); + result.AppendFormat(CultureInfo.CurrentUICulture, Resources.Resources.TestFailureMessageFormat, this.ErrorMessage); // Add stack trace if we have one. if (!string.IsNullOrWhiteSpace(this.ErrorStackTrace)) @@ -233,7 +233,7 @@ public override string ToString() result.AppendLine(); result.AppendFormat( CultureInfo.CurrentUICulture, - Resources.TestFailureStackTraceFormat, + Resources.Resources.TestFailureStackTraceFormat, this.ErrorStackTrace); } } @@ -248,7 +248,7 @@ public override string ToString() { testMessages.AppendFormat( CultureInfo.CurrentUICulture, - Resources.TestResultMessageFormat, + Resources.Resources.TestResultMessageFormat, message.Category, message.Text); } @@ -257,7 +257,7 @@ public override string ToString() result.AppendLine(); result.AppendFormat( CultureInfo.CurrentUICulture, - Resources.TestResultTextMessagesFormat, + Resources.Resources.TestResultTextMessagesFormat, testMessages.ToString()); } @@ -359,28 +359,28 @@ public static class TestResultProperties public static readonly TestProperty ErrorStackTrace = TestProperty.Register("TestResult.ErrorStackTrace", "Error Stack Trace", typeof(string), typeof(TestResult)); #else [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes")] - public static readonly TestProperty DisplayName = TestProperty.Register("TestResult.DisplayName", Resources.TestResultPropertyDisplayNameLabel, typeof(string), TestPropertyAttributes.Hidden, typeof(TestResult)); + public static readonly TestProperty DisplayName = TestProperty.Register("TestResult.DisplayName", Resources.Resources.TestResultPropertyDisplayNameLabel, typeof(string), TestPropertyAttributes.Hidden, typeof(TestResult)); [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes")] - public static readonly TestProperty ComputerName = TestProperty.Register("TestResult.ComputerName", Resources.TestResultPropertyComputerNameLabel, string.Empty, string.Empty, typeof(string), ValidateComputerName, TestPropertyAttributes.None, typeof(TestResult)); + public static readonly TestProperty ComputerName = TestProperty.Register("TestResult.ComputerName", Resources.Resources.TestResultPropertyComputerNameLabel, string.Empty, string.Empty, typeof(string), ValidateComputerName, TestPropertyAttributes.None, typeof(TestResult)); [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes")] - public static readonly TestProperty Outcome = TestProperty.Register("TestResult.Outcome", Resources.TestResultPropertyOutcomeLabel, string.Empty, string.Empty, typeof(TestOutcome), ValidateOutcome, TestPropertyAttributes.None, typeof(TestResult)); + public static readonly TestProperty Outcome = TestProperty.Register("TestResult.Outcome", Resources.Resources.TestResultPropertyOutcomeLabel, string.Empty, string.Empty, typeof(TestOutcome), ValidateOutcome, TestPropertyAttributes.None, typeof(TestResult)); [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes")] - public static readonly TestProperty Duration = TestProperty.Register("TestResult.Duration", Resources.TestResultPropertyDurationLabel, typeof(TimeSpan), typeof(TestResult)); + public static readonly TestProperty Duration = TestProperty.Register("TestResult.Duration", Resources.Resources.TestResultPropertyDurationLabel, typeof(TimeSpan), typeof(TestResult)); [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes")] - public static readonly TestProperty StartTime = TestProperty.Register("TestResult.StartTime", Resources.TestResultPropertyStartTimeLabel, typeof(DateTimeOffset), typeof(TestResult)); + public static readonly TestProperty StartTime = TestProperty.Register("TestResult.StartTime", Resources.Resources.TestResultPropertyStartTimeLabel, typeof(DateTimeOffset), typeof(TestResult)); [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes")] - public static readonly TestProperty EndTime = TestProperty.Register("TestResult.EndTime", Resources.TestResultPropertyEndTimeLabel, typeof(DateTimeOffset), typeof(TestResult)); + public static readonly TestProperty EndTime = TestProperty.Register("TestResult.EndTime", Resources.Resources.TestResultPropertyEndTimeLabel, typeof(DateTimeOffset), typeof(TestResult)); [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes")] - public static readonly TestProperty ErrorMessage = TestProperty.Register("TestResult.ErrorMessage", Resources.TestResultPropertyErrorMessageLabel, typeof(string), typeof(TestResult)); + public static readonly TestProperty ErrorMessage = TestProperty.Register("TestResult.ErrorMessage", Resources.Resources.TestResultPropertyErrorMessageLabel, typeof(string), typeof(TestResult)); [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes")] - public static readonly TestProperty ErrorStackTrace = TestProperty.Register("TestResult.ErrorStackTrace", Resources.TestResultPropertyErrorStackTraceLabel, typeof(string), typeof(TestResult)); + public static readonly TestProperty ErrorStackTrace = TestProperty.Register("TestResult.ErrorStackTrace", Resources.Resources.TestResultPropertyErrorStackTraceLabel, typeof(string), typeof(TestResult)); #endif private static bool ValidateComputerName(object value) diff --git a/src/Microsoft.TestPlatform.ObjectModel/TraitCollection.cs b/src/Microsoft.TestPlatform.ObjectModel/TraitCollection.cs index 0190cd4942..082ae164a9 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/TraitCollection.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/TraitCollection.cs @@ -24,7 +24,7 @@ public class TraitCollection : IEnumerable // Trying to access resources will throw "MissingManifestResourceException" percolated as "TypeInitialization" exception "Traits", #else - Resources.TestCasePropertyTraitsLabel, + Resources.Resources.TestCasePropertyTraitsLabel, #endif typeof(KeyValuePair[]), #pragma warning disable 618 diff --git a/src/Microsoft.TestPlatform.ObjectModel/Utilities/StringUtilities.cs b/src/Microsoft.TestPlatform.ObjectModel/Utilities/StringUtilities.cs index 1ad8f8929c..c642760476 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/Utilities/StringUtilities.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/Utilities/StringUtilities.cs @@ -20,7 +20,7 @@ public static string PrepareForOutput(string input) string result = input; if (input == null) { - result = Resources.NullString; + result = Resources.Resources.NullString; } result = result.TrimEnd(Environment.NewLine.ToCharArray()); diff --git a/src/Microsoft.TestPlatform.ObjectModel/Utilities/XmlReaderUtilities.cs b/src/Microsoft.TestPlatform.ObjectModel/Utilities/XmlReaderUtilities.cs index 859cf1aed7..844df94f1e 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/Utilities/XmlReaderUtilities.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/Utilities/XmlReaderUtilities.cs @@ -64,7 +64,7 @@ public static void ReadToRootNode(XmlReader reader) throw new SettingsException( string.Format( CultureInfo.CurrentCulture, - Resources.InvalidRunSettingsRootNode)); + Resources.Resources.InvalidRunSettingsRootNode)); } } diff --git a/src/Microsoft.TestPlatform.ObjectModel/Utilities/XmlRunSettingsUtilities.cs b/src/Microsoft.TestPlatform.ObjectModel/Utilities/XmlRunSettingsUtilities.cs index b6a9b461cb..01332290ca 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/Utilities/XmlRunSettingsUtilities.cs +++ b/src/Microsoft.TestPlatform.ObjectModel/Utilities/XmlRunSettingsUtilities.cs @@ -253,7 +253,7 @@ internal static void ThrowOnHasAttributes(XmlReader reader) throw new SettingsException( string.Format( CultureInfo.CurrentCulture, - Resources.InvalidSettingsXmlAttribute, + Resources.Resources.InvalidSettingsXmlAttribute, Constants.RunConfigurationSettingsName, reader.Name)); } diff --git a/src/Microsoft.TestPlatform.ObjectModel/project.json b/src/Microsoft.TestPlatform.ObjectModel/project.json index 7e25c1a260..38b4e2c066 100644 --- a/src/Microsoft.TestPlatform.ObjectModel/project.json +++ b/src/Microsoft.TestPlatform.ObjectModel/project.json @@ -4,7 +4,8 @@ "outputName": "Microsoft.VisualStudio.TestPlatform.ObjectModel", "delaySign": true, "keyFile": "../../scripts/key.snk", - "warningsAsErrors": true + "warningsAsErrors": true, + "embed": [ "Resources/*.resx" ] }, "dependencies": { "Microsoft.TestPlatform.CoreUtilities": "15.0.0-*", diff --git a/src/Microsoft.TestPlatform.Utilities/InferRunSettingsHelper.cs b/src/Microsoft.TestPlatform.Utilities/InferRunSettingsHelper.cs index e795e54ec0..729861af63 100644 --- a/src/Microsoft.TestPlatform.Utilities/InferRunSettingsHelper.cs +++ b/src/Microsoft.TestPlatform.Utilities/InferRunSettingsHelper.cs @@ -10,7 +10,7 @@ namespace Microsoft.VisualStudio.TestPlatform.Utilities using Microsoft.VisualStudio.TestPlatform.ObjectModel; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Utilities; - using Resources = Microsoft.VisualStudio.TestPlatform.Utilities.Resource; + using UtilitiesResources = Microsoft.VisualStudio.TestPlatform.Utilities.Resources.Resources; /// /// Utility class for Inferring the runsettings from the current environment and the user specified command line switches. @@ -86,8 +86,8 @@ private static void ValidateRunConfiguration(XPathNavigator runSettingsNavigator throw new XmlException( string.Format( CultureInfo.CurrentCulture, - Resources.RunSettingsParseError, - Resources.MissingRunSettingsNode)); + UtilitiesResources.RunSettingsParseError, + UtilitiesResources.MissingRunSettingsNode)); } if (runSettingsNavigator.MoveToChild(RunConfigurationNodeName, string.Empty)) @@ -98,10 +98,10 @@ private static void ValidateRunConfiguration(XPathNavigator runSettingsNavigator throw new XmlException( string.Format( CultureInfo.CurrentCulture, - Resources.RunSettingsParseError, + UtilitiesResources.RunSettingsParseError, string.Format( CultureInfo.CurrentCulture, - Resources.InvalidSettingsIncorrectValue, + UtilitiesResources.InvalidSettingsIncorrectValue, Constants.RunConfigurationSettingsName, nodeXml, TargetPlatformNodeName))); @@ -112,10 +112,10 @@ private static void ValidateRunConfiguration(XPathNavigator runSettingsNavigator throw new XmlException( string.Format( CultureInfo.CurrentCulture, - Resources.RunSettingsParseError, + UtilitiesResources.RunSettingsParseError, string.Format( CultureInfo.CurrentCulture, - Resources.InvalidSettingsIncorrectValue, + UtilitiesResources.InvalidSettingsIncorrectValue, Constants.RunConfigurationSettingsName, nodeXml, TargetFrameworkNodeName))); @@ -141,7 +141,7 @@ private static void VerifyCompatibilityWithOSArchitecture(Architecture architect return; } - throw new SettingsException(string.Format(CultureInfo.CurrentCulture, Resources.SystemArchitectureIncompatibleWithTargetPlatform, architecture, osArchitecture)); + throw new SettingsException(string.Format(CultureInfo.CurrentCulture, UtilitiesResources.SystemArchitectureIncompatibleWithTargetPlatform, architecture, osArchitecture)); } /// diff --git a/src/Microsoft.TestPlatform.Utilities/MSTestSettingsUtilities.cs b/src/Microsoft.TestPlatform.Utilities/MSTestSettingsUtilities.cs index 1cf94d91d7..9c375a305d 100644 --- a/src/Microsoft.TestPlatform.Utilities/MSTestSettingsUtilities.cs +++ b/src/Microsoft.TestPlatform.Utilities/MSTestSettingsUtilities.cs @@ -10,6 +10,8 @@ namespace Microsoft.VisualStudio.TestPlatform.Utilities using Microsoft.VisualStudio.TestPlatform.ObjectModel; + using UtilitiesResources = Microsoft.VisualStudio.TestPlatform.Utilities.Resources.Resources; + /// /// The legacy mstest.exe settings utilities. /// @@ -32,14 +34,14 @@ public static IXPathNavigable Import(string settingsFile, IXPathNavigable defaul if (IsLegacyTestSettingsFile(settingsFile) == false) { - throw new XmlException(string.Format(CultureInfo.CurrentCulture, Resource.UnExpectedSettingsFile)); + throw new XmlException(string.Format(CultureInfo.CurrentCulture, UtilitiesResources.UnExpectedSettingsFile)); } var navigator = defaultRunSettings.CreateNavigator(); if (!navigator.MoveToChild(Constants.RunSettingsName, string.Empty)) { - throw new XmlException(Resource.NoRunSettingsNodeFound); + throw new XmlException(UtilitiesResources.NoRunSettingsNodeFound); } var settingsNode = GenerateMSTestXml(settingsFile); diff --git a/src/Microsoft.TestPlatform.Utilities/Resource.Designer.cs b/src/Microsoft.TestPlatform.Utilities/Resources/Resources.Designer.cs similarity index 94% rename from src/Microsoft.TestPlatform.Utilities/Resource.Designer.cs rename to src/Microsoft.TestPlatform.Utilities/Resources/Resources.Designer.cs index e1c03eadb2..9e0170ded5 100644 --- a/src/Microsoft.TestPlatform.Utilities/Resource.Designer.cs +++ b/src/Microsoft.TestPlatform.Utilities/Resources/Resources.Designer.cs @@ -1,4 +1,4 @@ -//------------------------------------------------------------------------------ +//------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.42000 @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace Microsoft.VisualStudio.TestPlatform.Utilities { +namespace Microsoft.VisualStudio.TestPlatform.Utilities.Resources { using System; using System.Reflection; @@ -22,13 +22,13 @@ namespace Microsoft.VisualStudio.TestPlatform.Utilities { // with the /str option, or rebuild your VS project. [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class Resource { + public class Resources { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; - internal Resource() { + internal Resources() { } /// @@ -38,7 +38,7 @@ internal Resource() { public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.TestPlatform.Utilities.Resource", typeof(Resource).GetTypeInfo().Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.TestPlatform.Utilities.Resources.Resources", typeof(Resources).GetTypeInfo().Assembly); resourceMan = temp; } return resourceMan; diff --git a/src/Microsoft.TestPlatform.Utilities/Resource.resx b/src/Microsoft.TestPlatform.Utilities/Resources/Resources.resx similarity index 100% rename from src/Microsoft.TestPlatform.Utilities/Resource.resx rename to src/Microsoft.TestPlatform.Utilities/Resources/Resources.resx diff --git a/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.cs.xlf b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.cs.xlf new file mode 100644 index 0000000000..14e48babab --- /dev/null +++ b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.cs.xlf @@ -0,0 +1,42 @@ + + + + + + Run settings XML does not contain "RunSettings" node. + Run settings XML does not contain "RunSettings" node. + + + + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + An error occurred while loading the settings. Error: {0}. + An error occurred while loading the settings. Error: {0}. + + + + Incompatible Target platform settings '{0}' with system architecture '{1}'. + Incompatible Target platform settings '{0}' with system architecture '{1}'. + + + + Unexpected settings file specified. + Unexpected settings file specified. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.de.xlf b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.de.xlf new file mode 100644 index 0000000000..fe2f6c63c7 --- /dev/null +++ b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.de.xlf @@ -0,0 +1,42 @@ + + + + + + Run settings XML does not contain "RunSettings" node. + Run settings XML does not contain "RunSettings" node. + + + + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + An error occurred while loading the settings. Error: {0}. + An error occurred while loading the settings. Error: {0}. + + + + Incompatible Target platform settings '{0}' with system architecture '{1}'. + Incompatible Target platform settings '{0}' with system architecture '{1}'. + + + + Unexpected settings file specified. + Unexpected settings file specified. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.es.xlf b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.es.xlf new file mode 100644 index 0000000000..a061a47a6a --- /dev/null +++ b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.es.xlf @@ -0,0 +1,42 @@ + + + + + + Run settings XML does not contain "RunSettings" node. + Run settings XML does not contain "RunSettings" node. + + + + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + An error occurred while loading the settings. Error: {0}. + An error occurred while loading the settings. Error: {0}. + + + + Incompatible Target platform settings '{0}' with system architecture '{1}'. + Incompatible Target platform settings '{0}' with system architecture '{1}'. + + + + Unexpected settings file specified. + Unexpected settings file specified. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.fr.xlf b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.fr.xlf new file mode 100644 index 0000000000..a8653c6d1d --- /dev/null +++ b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.fr.xlf @@ -0,0 +1,42 @@ + + + + + + Run settings XML does not contain "RunSettings" node. + Run settings XML does not contain "RunSettings" node. + + + + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + An error occurred while loading the settings. Error: {0}. + An error occurred while loading the settings. Error: {0}. + + + + Incompatible Target platform settings '{0}' with system architecture '{1}'. + Incompatible Target platform settings '{0}' with system architecture '{1}'. + + + + Unexpected settings file specified. + Unexpected settings file specified. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.it.xlf b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.it.xlf new file mode 100644 index 0000000000..52168c7ba7 --- /dev/null +++ b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.it.xlf @@ -0,0 +1,42 @@ + + + + + + Run settings XML does not contain "RunSettings" node. + Run settings XML does not contain "RunSettings" node. + + + + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + An error occurred while loading the settings. Error: {0}. + An error occurred while loading the settings. Error: {0}. + + + + Incompatible Target platform settings '{0}' with system architecture '{1}'. + Incompatible Target platform settings '{0}' with system architecture '{1}'. + + + + Unexpected settings file specified. + Unexpected settings file specified. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.ja.xlf b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.ja.xlf new file mode 100644 index 0000000000..8a0c14145c --- /dev/null +++ b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.ja.xlf @@ -0,0 +1,42 @@ + + + + + + Run settings XML does not contain "RunSettings" node. + Run settings XML does not contain "RunSettings" node. + + + + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + An error occurred while loading the settings. Error: {0}. + An error occurred while loading the settings. Error: {0}. + + + + Incompatible Target platform settings '{0}' with system architecture '{1}'. + Incompatible Target platform settings '{0}' with system architecture '{1}'. + + + + Unexpected settings file specified. + Unexpected settings file specified. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.ko.xlf b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.ko.xlf new file mode 100644 index 0000000000..5754decbda --- /dev/null +++ b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.ko.xlf @@ -0,0 +1,42 @@ + + + + + + Run settings XML does not contain "RunSettings" node. + Run settings XML does not contain "RunSettings" node. + + + + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + An error occurred while loading the settings. Error: {0}. + An error occurred while loading the settings. Error: {0}. + + + + Incompatible Target platform settings '{0}' with system architecture '{1}'. + Incompatible Target platform settings '{0}' with system architecture '{1}'. + + + + Unexpected settings file specified. + Unexpected settings file specified. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.pl.xlf b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.pl.xlf new file mode 100644 index 0000000000..768adf750f --- /dev/null +++ b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.pl.xlf @@ -0,0 +1,42 @@ + + + + + + Run settings XML does not contain "RunSettings" node. + Run settings XML does not contain "RunSettings" node. + + + + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + An error occurred while loading the settings. Error: {0}. + An error occurred while loading the settings. Error: {0}. + + + + Incompatible Target platform settings '{0}' with system architecture '{1}'. + Incompatible Target platform settings '{0}' with system architecture '{1}'. + + + + Unexpected settings file specified. + Unexpected settings file specified. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.pt-BR.xlf b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.pt-BR.xlf new file mode 100644 index 0000000000..d6d013c642 --- /dev/null +++ b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.pt-BR.xlf @@ -0,0 +1,42 @@ + + + + + + Run settings XML does not contain "RunSettings" node. + Run settings XML does not contain "RunSettings" node. + + + + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + An error occurred while loading the settings. Error: {0}. + An error occurred while loading the settings. Error: {0}. + + + + Incompatible Target platform settings '{0}' with system architecture '{1}'. + Incompatible Target platform settings '{0}' with system architecture '{1}'. + + + + Unexpected settings file specified. + Unexpected settings file specified. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.ru.xlf b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.ru.xlf new file mode 100644 index 0000000000..f470951faa --- /dev/null +++ b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.ru.xlf @@ -0,0 +1,42 @@ + + + + + + Run settings XML does not contain "RunSettings" node. + Run settings XML does not contain "RunSettings" node. + + + + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + An error occurred while loading the settings. Error: {0}. + An error occurred while loading the settings. Error: {0}. + + + + Incompatible Target platform settings '{0}' with system architecture '{1}'. + Incompatible Target platform settings '{0}' with system architecture '{1}'. + + + + Unexpected settings file specified. + Unexpected settings file specified. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.tr.xlf b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.tr.xlf new file mode 100644 index 0000000000..90f0148c8d --- /dev/null +++ b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.tr.xlf @@ -0,0 +1,42 @@ + + + + + + Run settings XML does not contain "RunSettings" node. + Run settings XML does not contain "RunSettings" node. + + + + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + An error occurred while loading the settings. Error: {0}. + An error occurred while loading the settings. Error: {0}. + + + + Incompatible Target platform settings '{0}' with system architecture '{1}'. + Incompatible Target platform settings '{0}' with system architecture '{1}'. + + + + Unexpected settings file specified. + Unexpected settings file specified. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.zh-Hans.xlf b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.zh-Hans.xlf new file mode 100644 index 0000000000..cbec16c42d --- /dev/null +++ b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.zh-Hans.xlf @@ -0,0 +1,42 @@ + + + + + + Run settings XML does not contain "RunSettings" node. + Run settings XML does not contain "RunSettings" node. + + + + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + An error occurred while loading the settings. Error: {0}. + An error occurred while loading the settings. Error: {0}. + + + + Incompatible Target platform settings '{0}' with system architecture '{1}'. + Incompatible Target platform settings '{0}' with system architecture '{1}'. + + + + Unexpected settings file specified. + Unexpected settings file specified. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.zh-Hant.xlf b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.zh-Hant.xlf new file mode 100644 index 0000000000..0fe67ac389 --- /dev/null +++ b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.zh-Hant.xlf @@ -0,0 +1,42 @@ + + + + + + Run settings XML does not contain "RunSettings" node. + Run settings XML does not contain "RunSettings" node. + + + + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + Could not find 'RunSettings' node. + Could not find 'RunSettings' node. + + + + An error occurred while loading the settings. Error: {0}. + An error occurred while loading the settings. Error: {0}. + + + + Incompatible Target platform settings '{0}' with system architecture '{1}'. + Incompatible Target platform settings '{0}' with system architecture '{1}'. + + + + Unexpected settings file specified. + Unexpected settings file specified. + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.Utilities/project.json b/src/Microsoft.TestPlatform.Utilities/project.json index d8e79b35c2..cbf28aae2c 100644 --- a/src/Microsoft.TestPlatform.Utilities/project.json +++ b/src/Microsoft.TestPlatform.Utilities/project.json @@ -4,7 +4,8 @@ "buildOptions": { "delaySign": true, "keyFile": "../../scripts/key.snk", - "warningsAsErrors": true + "warningsAsErrors": true, + "embed": [ "Resources/*.resx" ] }, "dependencies": { diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources.Designer.cs b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/Resources.Designer.cs similarity index 95% rename from src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources.Designer.cs rename to src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/Resources.Designer.cs index a69e551777..7d0e2f9cbd 100644 --- a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources.Designer.cs +++ b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/Resources.Designer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace Microsoft.TestPlatform.VsTestConsole.TranslationLayer { +namespace Microsoft.TestPlatform.VsTestConsole.TranslationLayer.Resources { using System; using System.Reflection; @@ -38,7 +38,7 @@ internal Resources() { public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.TestPlatform.VsTestConsole.TranslationLayer.Resources", typeof(Resources).GetTypeInfo().Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.TestPlatform.VsTestConsole.TranslationLayer.Resources.Resources", typeof(Resources).GetTypeInfo().Assembly); resourceMan = temp; } return resourceMan; diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources.resx b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/Resources.resx similarity index 100% rename from src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources.resx rename to src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/Resources.resx diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.cs.xlf b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.cs.xlf new file mode 100644 index 0000000000..190b848891 --- /dev/null +++ b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.cs.xlf @@ -0,0 +1,27 @@ + + + + + + The active Tests Run was aborted. + The active Tests Run was aborted. + + + + The active Tests Discovery was aborted. + The active Tests Discovery was aborted. + + + + Failed to receive message from vstest.console process + Failed to receive message from vstest.console process + + + + vstest.console process exited abnormally + vstest.console process exited abnormally + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.de.xlf b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.de.xlf new file mode 100644 index 0000000000..d8e2d649b5 --- /dev/null +++ b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.de.xlf @@ -0,0 +1,27 @@ + + + + + + The active Tests Run was aborted. + The active Tests Run was aborted. + + + + The active Tests Discovery was aborted. + The active Tests Discovery was aborted. + + + + Failed to receive message from vstest.console process + Failed to receive message from vstest.console process + + + + vstest.console process exited abnormally + vstest.console process exited abnormally + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.es.xlf b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.es.xlf new file mode 100644 index 0000000000..76785e7e6c --- /dev/null +++ b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.es.xlf @@ -0,0 +1,27 @@ + + + + + + The active Tests Run was aborted. + The active Tests Run was aborted. + + + + The active Tests Discovery was aborted. + The active Tests Discovery was aborted. + + + + Failed to receive message from vstest.console process + Failed to receive message from vstest.console process + + + + vstest.console process exited abnormally + vstest.console process exited abnormally + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.fr.xlf b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.fr.xlf new file mode 100644 index 0000000000..37d9fcaaf6 --- /dev/null +++ b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.fr.xlf @@ -0,0 +1,27 @@ + + + + + + The active Tests Run was aborted. + The active Tests Run was aborted. + + + + The active Tests Discovery was aborted. + The active Tests Discovery was aborted. + + + + Failed to receive message from vstest.console process + Failed to receive message from vstest.console process + + + + vstest.console process exited abnormally + vstest.console process exited abnormally + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.it.xlf b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.it.xlf new file mode 100644 index 0000000000..c911ef8cd3 --- /dev/null +++ b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.it.xlf @@ -0,0 +1,27 @@ + + + + + + The active Tests Run was aborted. + The active Tests Run was aborted. + + + + The active Tests Discovery was aborted. + The active Tests Discovery was aborted. + + + + Failed to receive message from vstest.console process + Failed to receive message from vstest.console process + + + + vstest.console process exited abnormally + vstest.console process exited abnormally + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.ja.xlf b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.ja.xlf new file mode 100644 index 0000000000..cb015820bd --- /dev/null +++ b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.ja.xlf @@ -0,0 +1,27 @@ + + + + + + The active Tests Run was aborted. + The active Tests Run was aborted. + + + + The active Tests Discovery was aborted. + The active Tests Discovery was aborted. + + + + Failed to receive message from vstest.console process + Failed to receive message from vstest.console process + + + + vstest.console process exited abnormally + vstest.console process exited abnormally + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.ko.xlf b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.ko.xlf new file mode 100644 index 0000000000..450b8d661c --- /dev/null +++ b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.ko.xlf @@ -0,0 +1,27 @@ + + + + + + The active Tests Run was aborted. + The active Tests Run was aborted. + + + + The active Tests Discovery was aborted. + The active Tests Discovery was aborted. + + + + Failed to receive message from vstest.console process + Failed to receive message from vstest.console process + + + + vstest.console process exited abnormally + vstest.console process exited abnormally + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.pl.xlf b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.pl.xlf new file mode 100644 index 0000000000..99933396dd --- /dev/null +++ b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.pl.xlf @@ -0,0 +1,27 @@ + + + + + + The active Tests Run was aborted. + The active Tests Run was aborted. + + + + The active Tests Discovery was aborted. + The active Tests Discovery was aborted. + + + + Failed to receive message from vstest.console process + Failed to receive message from vstest.console process + + + + vstest.console process exited abnormally + vstest.console process exited abnormally + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.pt-BR.xlf b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.pt-BR.xlf new file mode 100644 index 0000000000..56b3fd4dd7 --- /dev/null +++ b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.pt-BR.xlf @@ -0,0 +1,27 @@ + + + + + + The active Tests Run was aborted. + The active Tests Run was aborted. + + + + The active Tests Discovery was aborted. + The active Tests Discovery was aborted. + + + + Failed to receive message from vstest.console process + Failed to receive message from vstest.console process + + + + vstest.console process exited abnormally + vstest.console process exited abnormally + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.ru.xlf b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.ru.xlf new file mode 100644 index 0000000000..6b69189321 --- /dev/null +++ b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.ru.xlf @@ -0,0 +1,27 @@ + + + + + + The active Tests Run was aborted. + The active Tests Run was aborted. + + + + The active Tests Discovery was aborted. + The active Tests Discovery was aborted. + + + + Failed to receive message from vstest.console process + Failed to receive message from vstest.console process + + + + vstest.console process exited abnormally + vstest.console process exited abnormally + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.tr.xlf b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.tr.xlf new file mode 100644 index 0000000000..67f5d599b8 --- /dev/null +++ b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.tr.xlf @@ -0,0 +1,27 @@ + + + + + + The active Tests Run was aborted. + The active Tests Run was aborted. + + + + The active Tests Discovery was aborted. + The active Tests Discovery was aborted. + + + + Failed to receive message from vstest.console process + Failed to receive message from vstest.console process + + + + vstest.console process exited abnormally + vstest.console process exited abnormally + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.zh-Hans.xlf b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.zh-Hans.xlf new file mode 100644 index 0000000000..740636c9dd --- /dev/null +++ b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.zh-Hans.xlf @@ -0,0 +1,27 @@ + + + + + + The active Tests Run was aborted. + The active Tests Run was aborted. + + + + The active Tests Discovery was aborted. + The active Tests Discovery was aborted. + + + + Failed to receive message from vstest.console process + Failed to receive message from vstest.console process + + + + vstest.console process exited abnormally + vstest.console process exited abnormally + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.zh-Hant.xlf b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.zh-Hant.xlf new file mode 100644 index 0000000000..db5fa1c648 --- /dev/null +++ b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.zh-Hant.xlf @@ -0,0 +1,27 @@ + + + + + + The active Tests Run was aborted. + The active Tests Run was aborted. + + + + The active Tests Discovery was aborted. + The active Tests Discovery was aborted. + + + + Failed to receive message from vstest.console process + Failed to receive message from vstest.console process + + + + vstest.console process exited abnormally + vstest.console process exited abnormally + + + + + \ No newline at end of file diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/VsTestConsoleRequestSender.cs b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/VsTestConsoleRequestSender.cs index ff415d638f..453d41137a 100644 --- a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/VsTestConsoleRequestSender.cs +++ b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/VsTestConsoleRequestSender.cs @@ -17,6 +17,8 @@ namespace Microsoft.TestPlatform.VsTestConsole.TranslationLayer using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.Interfaces; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging; + using TranslationLayerResources = Microsoft.TestPlatform.VsTestConsole.TranslationLayer.Resources.Resources; + /// /// VstestConsoleRequestSender for sending requests to Vstest.console.exe /// @@ -305,7 +307,7 @@ private void SendMessageAndListenAndReportTestCases(IEnumerable sources, catch (Exception exception) { EqtTrace.Error("Aborting Test Discovery Operation: {0}", exception); - eventHandler.HandleLogMessage(TestMessageLevel.Error, Resources.AbortedTestsDiscovery); + eventHandler.HandleLogMessage(TestMessageLevel.Error, TranslationLayerResources.AbortedTestsDiscovery); eventHandler.HandleDiscoveryComplete(-1, null, true); CleanupCommunicationIfProcessExit(); @@ -362,7 +364,7 @@ private void SendMessageAndListenAndReportTestResults(string messageType, object catch (Exception exception) { EqtTrace.Error("Aborting Test Run Operation: {0}", exception); - eventHandler.HandleLogMessage(TestMessageLevel.Error, Resources.AbortedTestsRun); + eventHandler.HandleLogMessage(TestMessageLevel.Error, TranslationLayerResources.AbortedTestsRun); var completeArgs = new TestRunCompleteEventArgs(null, false, true, exception, null, TimeSpan.Zero); eventHandler.HandleTestRunComplete(completeArgs, null, null, null); this.CleanupCommunicationIfProcessExit(); @@ -387,7 +389,7 @@ private Message TryReceiveMessage() if (message == null) { - throw new TransationLayerException(Resources.FailedToReceiveMessage); + throw new TransationLayerException(TranslationLayerResources.FailedToReceiveMessage); } return message; diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/project.json b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/project.json index ed0088f1ff..019103a89f 100644 --- a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/project.json +++ b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/project.json @@ -3,7 +3,8 @@ "buildOptions": { "delaySign": true, "keyFile": "../../scripts/key.snk", - "warningsAsErrors": true + "warningsAsErrors": true, + "embed": [ "Resources/*.resx" ] }, "frameworks": { diff --git a/src/package/project.json b/src/package/project.json index ee6949ab4b..116e5466f8 100644 --- a/src/package/project.json +++ b/src/package/project.json @@ -36,6 +36,10 @@ "NuGet.CommandLine": { "type": "build", "version": "3.4.3" + }, + "fmdev.xlftool": { + "type": "build", + "version": "0.1.1" } } }, diff --git a/src/vstest.console/CommandLine/CommandArgumentPair.cs b/src/vstest.console/CommandLine/CommandArgumentPair.cs index e129d2710e..e53fa66d31 100644 --- a/src/vstest.console/CommandLine/CommandArgumentPair.cs +++ b/src/vstest.console/CommandLine/CommandArgumentPair.cs @@ -4,6 +4,8 @@ namespace Microsoft.VisualStudio.TestPlatform.CommandLine { using System; using System.Diagnostics.Contracts; + + using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; /// /// Breaks a string down into command and argument based on the following format: @@ -44,7 +46,7 @@ public CommandArgumentPair(string input) { if (String.IsNullOrWhiteSpace(input)) { - throw new ArgumentException(Resources.CannotBeNullOrEmpty, "input"); + throw new ArgumentException(CommandLineResources.CannotBeNullOrEmpty, "input"); } Contract.Ensures(!String.IsNullOrWhiteSpace(Command)); @@ -60,7 +62,7 @@ public CommandArgumentPair(string command, string argument) { if (String.IsNullOrWhiteSpace(command)) { - throw new ArgumentException(Resources.CannotBeNullOrEmpty, "command"); + throw new ArgumentException(CommandLineResources.CannotBeNullOrEmpty, "command"); } Contract.Ensures(Command == command); diff --git a/src/vstest.console/CommandLine/CommandLineOptions.cs b/src/vstest.console/CommandLine/CommandLineOptions.cs index b01af776ab..cf6c227941 100644 --- a/src/vstest.console/CommandLine/CommandLineOptions.cs +++ b/src/vstest.console/CommandLine/CommandLineOptions.cs @@ -12,6 +12,8 @@ namespace Microsoft.VisualStudio.TestPlatform.CommandLine using Utilities.Helpers; using Utilities.Helpers.Interfaces; + using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; + /// /// Provides access to the command-line options. /// @@ -236,20 +238,20 @@ public void AddSource(string source) { if (String.IsNullOrWhiteSpace(source)) { - throw new CommandLineException(Resources.CannotBeNullOrEmpty); + throw new CommandLineException(CommandLineResources.CannotBeNullOrEmpty); } source = source.Trim(); if (!FileHelper.Exists(source)) { throw new CommandLineException( - string.Format(CultureInfo.CurrentUICulture, Resources.TestSourceFileNotFound, source)); + string.Format(CultureInfo.CurrentUICulture, CommandLineResources.TestSourceFileNotFound, source)); } if (this.sources.Contains(source, StringComparer.OrdinalIgnoreCase)) { throw new CommandLineException( - string.Format(CultureInfo.CurrentCulture, Resources.DuplicateSource, source)); + string.Format(CultureInfo.CurrentCulture, CommandLineResources.DuplicateSource, source)); } this.sources.Add(source); diff --git a/src/vstest.console/CommandLine/Executor.cs b/src/vstest.console/CommandLine/Executor.cs index a9b5e01d12..5c1e284339 100644 --- a/src/vstest.console/CommandLine/Executor.cs +++ b/src/vstest.console/CommandLine/Executor.cs @@ -25,15 +25,18 @@ namespace Microsoft.VisualStudio.TestPlatform.CommandLine using System; using System.Collections.Generic; using System.Diagnostics; + using System.Diagnostics.Contracts; using System.Globalization; using System.Linq; - using Microsoft.VisualStudio.TestPlatform.CommandLine.Processors; - using Microsoft.VisualStudio.TestPlatform.ObjectModel; - using Microsoft.VisualStudio.TestPlatform.Utilities; - using System.Diagnostics.Contracts; using System.Reflection; + + using Microsoft.VisualStudio.TestPlatform.CommandLine.Processors; using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing; using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing.Interfaces; + using Microsoft.VisualStudio.TestPlatform.ObjectModel; + using Microsoft.VisualStudio.TestPlatform.Utilities; + + using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; /// /// Performs the execution based on the arguments provided. @@ -157,7 +160,7 @@ private int GetArgumentProcessors(string[] args, out List pr else { // No known processor was found, report an error and continue - Output.Error(String.Format(CultureInfo.CurrentCulture, Resources.NoArgumentProcessorFound, arg)); + Output.Error(String.Format(CultureInfo.CurrentCulture, CommandLineResources.NoArgumentProcessorFound, arg)); // Add the help processor if (result == 0) @@ -230,7 +233,7 @@ private int IdentifyDuplicateArguments(IEnumerable argumentP // Update the count so we do not print the error out for this argument multiple times. commandSeenCount[processor.Metadata.Value.CommandName] = ++count; - Output.Error(String.Format(CultureInfo.CurrentCulture, Resources.DuplicateArgumentError, processor.Metadata.Value.CommandName)); + Output.Error(String.Format(CultureInfo.CurrentCulture, CommandLineResources.DuplicateArgumentError, processor.Metadata.Value.CommandName)); } } } @@ -292,10 +295,10 @@ private bool ExecuteArgumentProcessor(IArgumentProcessor processor, out int exit private void PrintSplashScreen() { var version = typeof(Executor).GetTypeInfo().Assembly.GetName().Version; - string commandLineBanner = String.Format(CultureInfo.CurrentUICulture, Resources.MicrosoftCommandLineTitle, version.ToString()); + string commandLineBanner = String.Format(CultureInfo.CurrentUICulture, CommandLineResources.MicrosoftCommandLineTitle, version.ToString()); Output.WriteLine(commandLineBanner, OutputLevel.Information); - Output.WriteLine(Resources.CopyrightCommandLineTitle, OutputLevel.Information); + Output.WriteLine(CommandLineResources.CopyrightCommandLineTitle, OutputLevel.Information); Output.WriteLine(string.Empty, OutputLevel.Information); } diff --git a/src/vstest.console/Internal/ConsoleLogger.cs b/src/vstest.console/Internal/ConsoleLogger.cs index e928d6021f..d382b63bf0 100644 --- a/src/vstest.console/Internal/ConsoleLogger.cs +++ b/src/vstest.console/Internal/ConsoleLogger.cs @@ -2,17 +2,19 @@ namespace Microsoft.VisualStudio.TestPlatform.CommandLine.Internal { - using Microsoft.VisualStudio.TestPlatform.ObjectModel; - using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client; - using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging; - using Microsoft.VisualStudio.TestPlatform.Utilities; using System; using System.Collections.ObjectModel; using System.Diagnostics; using System.Globalization; using System.Linq; using System.Text; - using Resources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources; + + using Microsoft.VisualStudio.TestPlatform.ObjectModel; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging; + using Microsoft.VisualStudio.TestPlatform.Utilities; + + using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; /// /// Logger for sending output to the console. @@ -113,19 +115,19 @@ private static void PrintTimeSpan(TimeSpan timeSpan) { if (timeSpan.TotalDays >= 1) { - Output.WriteLine(string.Format(CultureInfo.CurrentCulture, Resources.ExecutionTimeFormatString, timeSpan.TotalDays, Resources.Days), OutputLevel.Information); + Output.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.ExecutionTimeFormatString, timeSpan.TotalDays, CommandLineResources.Days), OutputLevel.Information); } else if (timeSpan.TotalHours >= 1) { - Output.WriteLine(string.Format(CultureInfo.CurrentCulture, Resources.ExecutionTimeFormatString, timeSpan.TotalHours, Resources.Hours), OutputLevel.Information); + Output.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.ExecutionTimeFormatString, timeSpan.TotalHours, CommandLineResources.Hours), OutputLevel.Information); } else if (timeSpan.TotalMinutes >= 1) { - Output.WriteLine(string.Format(CultureInfo.CurrentCulture, Resources.ExecutionTimeFormatString, timeSpan.TotalMinutes, Resources.Minutes), OutputLevel.Information); + Output.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.ExecutionTimeFormatString, timeSpan.TotalMinutes, CommandLineResources.Minutes), OutputLevel.Information); } else { - Output.WriteLine(string.Format(CultureInfo.CurrentCulture, Resources.ExecutionTimeFormatString, timeSpan.TotalSeconds, Resources.Seconds), OutputLevel.Information); + Output.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.ExecutionTimeFormatString, timeSpan.TotalSeconds, CommandLineResources.Seconds), OutputLevel.Information); } } @@ -139,9 +141,9 @@ private static string GetFormattedOutput(Collection testMessa StringBuilder sb = new StringBuilder(); foreach (var message in testMessageCollection) { - string prefix = String.Format(CultureInfo.CurrentCulture, "{0}{1}", Environment.NewLine, Resources.TestMessageFormattingPrefix); - string messageText = message.Text.Replace(Environment.NewLine, prefix).TrimEnd(Resources.TestMessageFormattingPrefix.ToCharArray()); - sb.AppendFormat(CultureInfo.CurrentCulture, "{0}{1}", Resources.TestMessageFormattingPrefix, messageText); + string prefix = String.Format(CultureInfo.CurrentCulture, "{0}{1}", Environment.NewLine, CommandLineResources.TestMessageFormattingPrefix); + string messageText = message.Text.Replace(Environment.NewLine, prefix).TrimEnd(CommandLineResources.TestMessageFormattingPrefix.ToCharArray()); + sb.AppendFormat(CultureInfo.CurrentCulture, "{0}{1}", CommandLineResources.TestMessageFormattingPrefix, messageText); } return sb.ToString(); } @@ -169,15 +171,15 @@ private static void DisplayFullInformation(TestResult result) if (!String.IsNullOrEmpty(result.ErrorMessage)) { hasData = true; - Output.WriteLine(Resources.ErrorMessageBanner, OutputLevel.Error); - string errorMessage = String.Format(CultureInfo.CurrentCulture, "{0}{1}", Resources.TestMessageFormattingPrefix, result.ErrorMessage); + Output.WriteLine(CommandLineResources.ErrorMessageBanner, OutputLevel.Error); + string errorMessage = String.Format(CultureInfo.CurrentCulture, "{0}{1}", CommandLineResources.TestMessageFormattingPrefix, result.ErrorMessage); Output.WriteLine(errorMessage, OutputLevel.Error); } if (!String.IsNullOrEmpty(result.ErrorStackTrace)) { hasData = true; - Output.WriteLine(Resources.StacktraceBanner, OutputLevel.Error); + Output.WriteLine(CommandLineResources.StacktraceBanner, OutputLevel.Error); string stackTrace = String.Format(CultureInfo.CurrentCulture, "{0}", result.ErrorStackTrace); Output.Write(stackTrace, OutputLevel.Error); } @@ -187,7 +189,7 @@ private static void DisplayFullInformation(TestResult result) { hasData = true; string stdOutMessages = GetFormattedOutput(stdOutMessagesCollection); - Output.WriteLine(Resources.StdOutMessagesBanner, OutputLevel.Information); + Output.WriteLine(CommandLineResources.StdOutMessagesBanner, OutputLevel.Information); Output.Write(stdOutMessages, OutputLevel.Information); } @@ -196,7 +198,7 @@ private static void DisplayFullInformation(TestResult result) { hasData = true; string stdErrMessages = GetFormattedOutput(stdErrMessagesCollection); - Output.WriteLine(Resources.StdErrMessagesBanner, OutputLevel.Error); + Output.WriteLine(CommandLineResources.StdErrMessagesBanner, OutputLevel.Error); Output.Write(stdErrMessages, OutputLevel.Error); } @@ -204,7 +206,7 @@ private static void DisplayFullInformation(TestResult result) if (addnlInfoMessagesCollection.Count > 0) { hasData = true; - Output.WriteLine(Resources.AddnlInfoMessagesBanner, OutputLevel.Information); + Output.WriteLine(CommandLineResources.AddnlInfoMessagesBanner, OutputLevel.Information); string addnlInfoMessages = GetFormattedOutput(addnlInfoMessagesCollection); Output.Write(addnlInfoMessages, OutputLevel.Information); } @@ -263,7 +265,7 @@ private void TestResultHandler(object sender, TestResultEventArgs e) if (e.Result.Outcome == TestOutcome.Skipped) { this.testsSkipped++; - string output = string.Format(CultureInfo.CurrentCulture, Resources.SkippedTestIndicator, name); + string output = string.Format(CultureInfo.CurrentCulture, CommandLineResources.SkippedTestIndicator, name); Output.WriteLine(output, OutputLevel.Information); DisplayFullInformation(e.Result); } @@ -271,13 +273,13 @@ private void TestResultHandler(object sender, TestResultEventArgs e) { this.testOutcome = TestOutcome.Failed; this.testsFailed++; - string output = string.Format(CultureInfo.CurrentCulture, Resources.FailedTestIndicator, name); + string output = string.Format(CultureInfo.CurrentCulture, CommandLineResources.FailedTestIndicator, name); Output.WriteLine(output, OutputLevel.Information); DisplayFullInformation(e.Result); } else if (e.Result.Outcome == TestOutcome.Passed) { - string output = string.Format(CultureInfo.CurrentCulture, Resources.PassedTestIndicator, name); + string output = string.Format(CultureInfo.CurrentCulture, CommandLineResources.PassedTestIndicator, name); Output.WriteLine(output, OutputLevel.Information); this.testsPassed++; } @@ -294,12 +296,12 @@ private void TestRunCompleteHandler(object sender, TestRunCompleteEventArgs e) int runLevelAttachementCount = (e.AttachmentSets == null) ? 0 : e.AttachmentSets.Sum(attachmentSet => attachmentSet.Attachments.Count); if (runLevelAttachementCount > 0) { - Output.WriteLine(Resources.AttachmentsBanner, OutputLevel.Information); + Output.WriteLine(CommandLineResources.AttachmentsBanner, OutputLevel.Information); foreach (AttachmentSet attachmentSet in e.AttachmentSets) { foreach (UriDataAttachment uriDataAttachment in attachmentSet.Attachments) { - string attachmentOutput = string.Format(CultureInfo.CurrentCulture, Resources.AttachmentOutputFormat, uriDataAttachment.Uri.LocalPath); + string attachmentOutput = string.Format(CultureInfo.CurrentCulture, CommandLineResources.AttachmentOutputFormat, uriDataAttachment.Uri.LocalPath); Output.WriteLine(attachmentOutput, OutputLevel.Information); } } @@ -311,18 +313,18 @@ private void TestRunCompleteHandler(object sender, TestRunCompleteEventArgs e) { if (this.testOutcome == TestOutcome.Failed) { - Output.WriteLine(string.Format(CultureInfo.CurrentCulture, Resources.TestRunSummary, testsTotal, testsPassed, testsFailed, testsSkipped), OutputLevel.Information); + Output.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.TestRunSummary, testsTotal, testsPassed, testsFailed, testsSkipped), OutputLevel.Information); using (new ConsoleColorHelper(ConsoleColor.Red)) { - Output.WriteLine(Resources.TestRunFailed, OutputLevel.Error); + Output.WriteLine(CommandLineResources.TestRunFailed, OutputLevel.Error); } } else { - Output.WriteLine(string.Format(CultureInfo.CurrentCulture, Resources.TestRunSummary, testsTotal, testsPassed, testsFailed, testsSkipped), OutputLevel.Information); + Output.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.TestRunSummary, testsTotal, testsPassed, testsFailed, testsSkipped), OutputLevel.Information); using (new ConsoleColorHelper(ConsoleColor.Green)) { - Output.WriteLine(Resources.TestRunSuccessful, OutputLevel.Information); + Output.WriteLine(CommandLineResources.TestRunSuccessful, OutputLevel.Information); } } if (!e.ElapsedTimeInRunningTests.Equals(TimeSpan.Zero)) diff --git a/src/vstest.console/Processors/EnableDiagArgumentProcessor.cs b/src/vstest.console/Processors/EnableDiagArgumentProcessor.cs index ae3b73c91b..e55dbd5e02 100644 --- a/src/vstest.console/Processors/EnableDiagArgumentProcessor.cs +++ b/src/vstest.console/Processors/EnableDiagArgumentProcessor.cs @@ -9,7 +9,7 @@ namespace Microsoft.VisualStudio.TestPlatform.CommandLine.Processors using Microsoft.VisualStudio.TestPlatform.Utilities.Helpers; using Microsoft.VisualStudio.TestPlatform.Utilities.Helpers.Interfaces; - using Resources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources; + using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; internal class EnableDiagArgumentProcessor : IArgumentProcessor { @@ -88,7 +88,7 @@ internal class EnableDiagArgumentProcessorCapabilities : BaseArgumentProcessorCa public override ArgumentProcessorPriority Priority => ArgumentProcessorPriority.Diag; - public override string HelpContentResourceName => CommandLine.Resources.EnableDiagUsage; + public override string HelpContentResourceName => CommandLineResources.EnableDiagUsage; public override HelpContentPriority HelpPriority => HelpContentPriority.EnableDiagArgumentProcessorHelpPriority; } @@ -123,18 +123,18 @@ public void Initialize(string argument) { if (string.IsNullOrWhiteSpace(argument)) { - throw new CommandLineException(Resources.EnableDiagUsage); + throw new CommandLineException(CommandLineResources.EnableDiagUsage); } // Checking if the file is readonly if (this.fileHelper.Exists(argument) && this.IsFileReadOnly(argument)) { - throw new CommandLineException(string.Format(Resources.LoggerFileIsReadOnly, argument)); + throw new CommandLineException(string.Format(CommandLineResources.LoggerFileIsReadOnly, argument)); } else if (string.IsNullOrWhiteSpace(Path.GetExtension(argument))) { // Throwing error if the argument is just path and not a file - throw new CommandLineException(Resources.EnableDiagUsage); + throw new CommandLineException(CommandLineResources.EnableDiagUsage); } // Create the base directory for logging if doesn't exist. Directory could be empty if just a diff --git a/src/vstest.console/Processors/EnableLoggerArgumentProcessor.cs b/src/vstest.console/Processors/EnableLoggerArgumentProcessor.cs index b15142135f..e5a3caefd9 100644 --- a/src/vstest.console/Processors/EnableLoggerArgumentProcessor.cs +++ b/src/vstest.console/Processors/EnableLoggerArgumentProcessor.cs @@ -10,6 +10,8 @@ namespace Microsoft.VisualStudio.TestPlatform.CommandLine.Processors using Microsoft.VisualStudio.TestPlatform.CommandLine.Processors.Utilities; + using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; + /// /// An argument processor that allows the user to enable a specific logger /// from the command line using the --Logger|/Logger command line switch. @@ -96,7 +98,7 @@ internal class EnableLoggerArgumentProcessorCapabilities : BaseArgumentProcessor /// /// Gets the help content resource name. /// - public override string HelpContentResourceName => Resources.EnableLoggersArgumentHelp; + public override string HelpContentResourceName => CommandLineResources.EnableLoggersArgumentHelp; /// /// Gets the help priority. @@ -168,7 +170,7 @@ public void Initialize(string argument) throw new CommandLineException( String.Format( CultureInfo.CurrentUICulture, - Resources.LoggerNotFound, + CommandLineResources.LoggerNotFound, argument)); } } @@ -205,7 +207,7 @@ private static void HandleInvalidArgument(string argument) throw new CommandLineException( string.Format( CultureInfo.CurrentUICulture, - Resources.LoggerUriInvalid, + CommandLineResources.LoggerUriInvalid, argument)); } diff --git a/src/vstest.console/Processors/FrameworkArgumentProcessor.cs b/src/vstest.console/Processors/FrameworkArgumentProcessor.cs index c3676c6120..e5ac2df822 100644 --- a/src/vstest.console/Processors/FrameworkArgumentProcessor.cs +++ b/src/vstest.console/Processors/FrameworkArgumentProcessor.cs @@ -5,10 +5,9 @@ namespace Microsoft.VisualStudio.TestPlatform.CommandLine.Processors using System; using System.Diagnostics.Contracts; using System.Globalization; - - using Resources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources; using Microsoft.VisualStudio.TestPlatform.ObjectModel; - using System.Runtime.Versioning; + + using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; /// /// An argument processor that allows the user to specify the target platform architecture @@ -77,7 +76,7 @@ internal class FrameworkArgumentProcessorCapabilities : BaseArgumentProcessorCap public override ArgumentProcessorPriority Priority => ArgumentProcessorPriority.AutoUpdateRunSettings; - public override string HelpContentResourceName => Resources.FrameworkArgumentHelp; + public override string HelpContentResourceName => CommandLineResources.FrameworkArgumentHelp; public override HelpContentPriority HelpPriority => HelpContentPriority.FrameworkArgumentProcessorHelpPriority; } @@ -121,14 +120,14 @@ public void Initialize(string argument) { if (string.IsNullOrWhiteSpace(argument)) { - throw new CommandLineException(Resources.FrameworkVersionRequired); + throw new CommandLineException(CommandLineResources.FrameworkVersionRequired); } var validFramework = Framework.FromString(argument); if (validFramework == null) { throw new CommandLineException( - string.Format(CultureInfo.CurrentCulture, Resources.InvalidFrameworkVersion, argument)); + string.Format(CultureInfo.CurrentCulture, CommandLineResources.InvalidFrameworkVersion, argument)); } commandLineOptions.TargetFrameworkVersion = validFramework; diff --git a/src/vstest.console/Processors/HelpArgumentProcessor.cs b/src/vstest.console/Processors/HelpArgumentProcessor.cs index 50635a3a02..387e631eed 100644 --- a/src/vstest.console/Processors/HelpArgumentProcessor.cs +++ b/src/vstest.console/Processors/HelpArgumentProcessor.cs @@ -7,7 +7,7 @@ namespace Microsoft.VisualStudio.TestPlatform.CommandLine.Processors using System.Globalization; using Microsoft.VisualStudio.TestPlatform.Utilities; - using Resources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources; + using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; // // Argument Executor for the "-?|--Help|/?|/Help" Help command line argument. @@ -80,7 +80,7 @@ internal class HelpArgumentProcessorCapabilities : BaseArgumentProcessorCapabili public override string ShortCommandName => HelpArgumentProcessor.ShortCommandName; - public override string HelpContentResourceName => Resources.HelpArgumentHelp; + public override string HelpContentResourceName => CommandLineResources.HelpArgumentHelp; public override HelpContentPriority HelpPriority => HelpContentPriority.HelpArgumentProcessorHelpPriority; @@ -124,9 +124,9 @@ public void Initialize(string argument) public ArgumentProcessorResult Execute() { // Output the stock ouput text - OutputSection(Resources.HelpUsageText); - OutputSection(Resources.HelpDescriptionText); - OutputSection(Resources.HelpArgumentsText); + OutputSection(CommandLineResources.HelpUsageText); + OutputSection(CommandLineResources.HelpDescriptionText); + OutputSection(CommandLineResources.HelpArgumentsText); var argumentProcessorFactory = ArgumentProcessorFactory.Create(); List processors = new List(); @@ -143,7 +143,7 @@ public ArgumentProcessorResult Execute() } // Output the help description for each available argument processor - OutputSection(Resources.HelpOptionsText); + OutputSection(CommandLineResources.HelpOptionsText); foreach (var argumentProcessor in processors) { helpDescription = LookupHelpDescription(argumentProcessor); @@ -152,7 +152,7 @@ public ArgumentProcessorResult Execute() OutputSection(helpDescription); } } - OutputSection(Resources.Examples); + OutputSection(CommandLineResources.Examples); // When Help has finished abort any subsequent argument processor operations return ArgumentProcessorResult.Abort; diff --git a/src/vstest.console/Processors/ListTestsArgumentProcessor.cs b/src/vstest.console/Processors/ListTestsArgumentProcessor.cs index 310ee094e2..68282f74ef 100644 --- a/src/vstest.console/Processors/ListTestsArgumentProcessor.cs +++ b/src/vstest.console/Processors/ListTestsArgumentProcessor.cs @@ -6,15 +6,17 @@ namespace Microsoft.VisualStudio.TestPlatform.CommandLine.Processors using System.Diagnostics.Contracts; using System.Globalization; using System.Linq; + + using Microsoft.VisualStudio.TestPlatform.Client.RequestHelper; using Microsoft.VisualStudio.TestPlatform.CommandLine; - using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client; - using Microsoft.VisualStudio.TestPlatform.Utilities; - using Resources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources; + using Microsoft.VisualStudio.TestPlatform.CommandLine.Processors.Utilities; using Microsoft.VisualStudio.TestPlatform.CommandLine.TestPlatformHelpers; using Microsoft.VisualStudio.TestPlatform.Common; using Microsoft.VisualStudio.TestPlatform.Common.Interfaces; - using Microsoft.VisualStudio.TestPlatform.CommandLine.Processors.Utilities; - using Microsoft.VisualStudio.TestPlatform.Client.RequestHelper; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client; + using Microsoft.VisualStudio.TestPlatform.Utilities; + + using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; /// /// Argument Executor for the "-lt|--ListTests|/lt|/ListTests" command line argument. @@ -95,7 +97,7 @@ internal class ListTestsArgumentProcessorCapabilities : BaseArgumentProcessorCap public override ArgumentProcessorPriority Priority => ArgumentProcessorPriority.Normal; - public override string HelpContentResourceName => Resources.ListTestsHelp; + public override string HelpContentResourceName => CommandLineResources.ListTestsHelp; public override HelpContentPriority HelpPriority => HelpContentPriority.ListTestsArgumentProcessorHelpPriority; } @@ -200,12 +202,12 @@ public ArgumentProcessorResult Execute() if (this.commandLineOptions.Sources.Count() <= 0) { #if TODO - this.logger.SendMessage(TestMessageLevel.Error, Resources.MissingTestSourceFile); + this.logger.SendMessage(TestMessageLevel.Error, CommandLineResources.MissingTestSourceFile); #endif return ArgumentProcessorResult.Fail; } - this.output.WriteLine(Resources.ListTestsHeaderMessage, OutputLevel.Information); + this.output.WriteLine(CommandLineResources.ListTestsHeaderMessage, OutputLevel.Information); var runSettings = RunSettingsUtilities.GetRunSettings(this.runSettingsManager, this.commandLineOptions); @@ -254,7 +256,7 @@ private void discoveryRequest_OnDiscoveredTests(Object sender, DiscoveredTestsEv } output.WriteLine(String.Format(CultureInfo.CurrentUICulture, - Resources.AvailableTestsFormat, + CommandLineResources.AvailableTestsFormat, test.DisplayName), OutputLevel.Information); } diff --git a/src/vstest.console/Processors/ParallelArgumentProcessor.cs b/src/vstest.console/Processors/ParallelArgumentProcessor.cs index 874b2dc4cd..86b2ab5f4b 100644 --- a/src/vstest.console/Processors/ParallelArgumentProcessor.cs +++ b/src/vstest.console/Processors/ParallelArgumentProcessor.cs @@ -3,11 +3,10 @@ namespace Microsoft.VisualStudio.TestPlatform.CommandLine.Processors { using System; - using System.Collections.Generic; using System.Diagnostics.Contracts; using System.Globalization; - using System.Linq; - using System.Threading.Tasks; + + using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; /// /// Parallel Option Argument processor that allows the user to specify if tests are to be run in parallel. @@ -72,7 +71,7 @@ internal class ParallelArgumentProcessorCapabilities : BaseArgumentProcessorCapa public override ArgumentProcessorPriority Priority => ArgumentProcessorPriority.AutoUpdateRunSettings; - public override string HelpContentResourceName => Resources.ParallelArgumentProcessorHelp; + public override string HelpContentResourceName => CommandLineResources.ParallelArgumentProcessorHelp; public override HelpContentPriority HelpPriority => HelpContentPriority.ParallelArgumentProcessorHelpPriority; } @@ -118,7 +117,7 @@ public void Initialize(string argument) if (!string.IsNullOrWhiteSpace(argument)) { throw new CommandLineException( - string.Format(CultureInfo.CurrentCulture, Resources.InvalidParallelCommand, argument)); + string.Format(CultureInfo.CurrentCulture, CommandLineResources.InvalidParallelCommand, argument)); } commandLineOptions.Parallel = true; diff --git a/src/vstest.console/Processors/ParentProcessIdArgumentProcessor.cs b/src/vstest.console/Processors/ParentProcessIdArgumentProcessor.cs index a01a17cfa2..9a75053555 100644 --- a/src/vstest.console/Processors/ParentProcessIdArgumentProcessor.cs +++ b/src/vstest.console/Processors/ParentProcessIdArgumentProcessor.cs @@ -2,10 +2,13 @@ namespace Microsoft.VisualStudio.TestPlatform.CommandLine.Processors { - using Microsoft.VisualStudio.TestPlatform.CommandLine; using System; using System.Diagnostics.Contracts; + using Microsoft.VisualStudio.TestPlatform.CommandLine; + + using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; + /// /// Argument Processor for the "--ParentProcessId|/ParentProcessId" command line argument. /// @@ -73,7 +76,7 @@ internal class ParentProcessIdArgumentProcessorCapabilities : BaseArgumentProces public override ArgumentProcessorPriority Priority => ArgumentProcessorPriority.ParentProcessId; - public override string HelpContentResourceName => Resources.ParentProcessIdArgumentHelp; + public override string HelpContentResourceName => CommandLineResources.ParentProcessIdArgumentHelp; public override HelpContentPriority HelpPriority => HelpContentPriority.ParentProcessIdArgumentProcessorHelpPriority; } @@ -117,7 +120,7 @@ public void Initialize(string argument) int parentProcessId; if (string.IsNullOrWhiteSpace(argument) || !int.TryParse(argument, out parentProcessId)) { - throw new CommandLineException(Resources.InvalidParentProcessIdArgument); + throw new CommandLineException(CommandLineResources.InvalidParentProcessIdArgument); } this.commandLineOptions.ParentProcessId = parentProcessId; diff --git a/src/vstest.console/Processors/PlatformArgumentProcessor.cs b/src/vstest.console/Processors/PlatformArgumentProcessor.cs index 584f4eecd7..c37f66fe25 100644 --- a/src/vstest.console/Processors/PlatformArgumentProcessor.cs +++ b/src/vstest.console/Processors/PlatformArgumentProcessor.cs @@ -6,8 +6,8 @@ namespace Microsoft.VisualStudio.TestPlatform.CommandLine.Processors using System.Diagnostics.Contracts; using System.Globalization; - using Resources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources; using Microsoft.VisualStudio.TestPlatform.ObjectModel; + using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; /// /// An argument processor that allows the user to specify the target platform architecture @@ -76,7 +76,7 @@ internal class PlatformArgumentProcessorCapabilities : BaseArgumentProcessorCapa public override ArgumentProcessorPriority Priority => ArgumentProcessorPriority.AutoUpdateRunSettings; - public override string HelpContentResourceName => Resources.PlatformArgumentHelp; + public override string HelpContentResourceName => CommandLineResources.PlatformArgumentHelp; public override HelpContentPriority HelpPriority => HelpContentPriority.PlatformArgumentProcessorHelpPriority; } @@ -120,7 +120,7 @@ public void Initialize(string argument) { if (string.IsNullOrWhiteSpace(argument)) { - throw new CommandLineException(Resources.PlatformTypeRequired); + throw new CommandLineException(CommandLineResources.PlatformTypeRequired); } Architecture platform; @@ -137,7 +137,7 @@ public void Initialize(string argument) else { throw new CommandLineException( - string.Format(CultureInfo.CurrentCulture, Resources.InvalidPlatformType, argument)); + string.Format(CultureInfo.CurrentCulture, CommandLineResources.InvalidPlatformType, argument)); } if (EqtTrace.IsInfoEnabled) diff --git a/src/vstest.console/Processors/PortArgumentProcessor.cs b/src/vstest.console/Processors/PortArgumentProcessor.cs index 5b139559ae..940efefd00 100644 --- a/src/vstest.console/Processors/PortArgumentProcessor.cs +++ b/src/vstest.console/Processors/PortArgumentProcessor.cs @@ -2,14 +2,17 @@ namespace Microsoft.VisualStudio.TestPlatform.CommandLine.Processors { - using Microsoft.VisualStudio.TestPlatform.CommandLine; using System; + using System.Diagnostics; using System.Diagnostics.Contracts; - using TestPlatformHelpers; - using Resources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources; - using Microsoft.VisualStudio.TestPlatform.Client.RequestHelper; + using Microsoft.VisualStudio.TestPlatform.Client.DesignMode; - using System.Diagnostics; + using Microsoft.VisualStudio.TestPlatform.Client.RequestHelper; + using Microsoft.VisualStudio.TestPlatform.CommandLine; + + using TestPlatformHelpers; + + using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; /// /// Argument Processor for the "--Port|/Port" command line argument. @@ -78,7 +81,7 @@ internal class PortArgumentProcessorCapabilities : BaseArgumentProcessorCapabili public override ArgumentProcessorPriority Priority => ArgumentProcessorPriority.Normal; - public override string HelpContentResourceName => Resources.PortArgumentHelp; + public override string HelpContentResourceName => CommandLineResources.PortArgumentHelp; public override HelpContentPriority HelpPriority => HelpContentPriority.PortArgumentProcessorHelpPriority; } @@ -149,7 +152,7 @@ public void Initialize(string argument) int portNumber; if (string.IsNullOrWhiteSpace(argument) || !int.TryParse(argument, out portNumber)) { - throw new CommandLineException(Resources.InvalidPortArgument); + throw new CommandLineException(CommandLineResources.InvalidPortArgument); } this.commandLineOptions.Port = portNumber; diff --git a/src/vstest.console/Processors/RunSettingsArgumentProcessor.cs b/src/vstest.console/Processors/RunSettingsArgumentProcessor.cs index 1e2e59188d..926ff8fcc9 100644 --- a/src/vstest.console/Processors/RunSettingsArgumentProcessor.cs +++ b/src/vstest.console/Processors/RunSettingsArgumentProcessor.cs @@ -8,14 +8,15 @@ namespace Microsoft.VisualStudio.TestPlatform.CommandLine.Processors using System.Xml; using System.Xml.XPath; + using Microsoft.VisualStudio.TestPlatform.Common; + using Microsoft.VisualStudio.TestPlatform.Common.Interfaces; using Microsoft.VisualStudio.TestPlatform.ObjectModel; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Utilities; using Microsoft.VisualStudio.TestPlatform.Utilities; - using Microsoft.VisualStudio.TestPlatform.Utilities.Helpers.Interfaces; - using Resources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources; - using Microsoft.VisualStudio.TestPlatform.Common; - using Microsoft.VisualStudio.TestPlatform.Common.Interfaces; using Microsoft.VisualStudio.TestPlatform.Utilities.Helpers; + using Microsoft.VisualStudio.TestPlatform.Utilities.Helpers.Interfaces; + + using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; internal class RunSettingsArgumentProcessor : IArgumentProcessor { @@ -80,7 +81,7 @@ internal class RunSettingsArgumentProcessorCapabilities : BaseArgumentProcessorC public override ArgumentProcessorPriority Priority => ArgumentProcessorPriority.RunSettings; - public override string HelpContentResourceName => Resources.RunSettingsArgumentHelp; + public override string HelpContentResourceName => CommandLineResources.RunSettingsArgumentHelp; public override HelpContentPriority HelpPriority => HelpContentPriority.RunSettingsArgumentProcessorHelpPriority; } @@ -103,7 +104,7 @@ public void Initialize(string argument) { if (string.IsNullOrWhiteSpace(argument)) { - throw new CommandLineException(Resources.RunSettingsRequired); + throw new CommandLineException(CommandLineResources.RunSettingsRequired); } if (!this.FileHelper.Exists(argument)) @@ -111,7 +112,7 @@ public void Initialize(string argument) throw new CommandLineException( string.Format( CultureInfo.CurrentCulture, - Resources.RunSettingsFileNotFound, + CommandLineResources.RunSettingsFileNotFound, argument)); } @@ -131,7 +132,7 @@ public void Initialize(string argument) } catch (XmlException exception) { - throw new CommandLineException(Resources.MalformedRunSettingsFile, exception); + throw new CommandLineException(CommandLineResources.MalformedRunSettingsFile, exception); } catch (SettingsException exception) { @@ -171,7 +172,7 @@ private IXPathNavigable GetRunSettingsDocument(string runSettingsFile) if (this.commandLineOptions.FrameworkVersionSpecified && this.commandLineOptions.TargetFrameworkVersion != Framework.DefaultFramework) { IOutput output = ConsoleOutput.Instance; - output.Warning(Resources.TestSettingsFrameworkMismatch, this.commandLineOptions.TargetFrameworkVersion.ToString(), Framework.DefaultFramework.ToString()); + output.Warning(CommandLineResources.TestSettingsFrameworkMismatch, this.commandLineOptions.TargetFrameworkVersion.ToString(), Framework.DefaultFramework.ToString()); } var architecture = this.commandLineOptions.ArchitectureSpecified @@ -189,7 +190,7 @@ private IXPathNavigable GetRunSettingsDocument(string runSettingsFile) } catch (XPathException e) { - throw new SettingsException(Resources.MalformedRunSettingsFile, e); + throw new SettingsException(CommandLineResources.MalformedRunSettingsFile, e); } } diff --git a/src/vstest.console/Processors/RunSpecificTestsArgumentProcessor.cs b/src/vstest.console/Processors/RunSpecificTestsArgumentProcessor.cs index 6ebcf385c5..39010b0b4e 100644 --- a/src/vstest.console/Processors/RunSpecificTestsArgumentProcessor.cs +++ b/src/vstest.console/Processors/RunSpecificTestsArgumentProcessor.cs @@ -4,23 +4,21 @@ namespace Microsoft.VisualStudio.TestPlatform.CommandLine.Processors { using System; using System.Collections.Generic; - using System.Linq; - using System.Diagnostics.Contracts; - using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client; - using Microsoft.VisualStudio.TestPlatform.ObjectModel; - using Resources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources; - using Microsoft.VisualStudio.TestPlatform.Utilities; using System.Collections.ObjectModel; + using System.Diagnostics.Contracts; using System.Globalization; + using System.Linq; - using Microsoft.VisualStudio.TestPlatform.Common.Logging; + using Microsoft.VisualStudio.TestPlatform.Client.RequestHelper; + using Microsoft.VisualStudio.TestPlatform.CommandLine.Processors.Utilities; using Microsoft.VisualStudio.TestPlatform.CommandLine.TestPlatformHelpers; - using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.Interfaces; using Microsoft.VisualStudio.TestPlatform.Common; using Microsoft.VisualStudio.TestPlatform.Common.Interfaces; - using Microsoft.VisualStudio.TestPlatform.CommandLine.Processors.Utilities; - using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.ObjectModel; - using Microsoft.VisualStudio.TestPlatform.Client.RequestHelper; + using Microsoft.VisualStudio.TestPlatform.ObjectModel; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client; + using Microsoft.VisualStudio.TestPlatform.Utilities; + + using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; internal class RunSpecificTestsArgumentProcessor : IArgumentProcessor { @@ -72,7 +70,7 @@ internal class RunSpecificTestsArgumentProcessorCapabilities : BaseArgumentProce public override bool AllowMultiple => false; - public override string HelpContentResourceName => Resources.RunSpecificTestsHelp; + public override string HelpContentResourceName => CommandLineResources.RunSpecificTestsHelp; public override HelpContentPriority HelpPriority => HelpContentPriority.RunSpecificTestsArgumentProcessorHelpPriority; @@ -175,11 +173,11 @@ public void Initialize(string argument) { if (!string.IsNullOrWhiteSpace(argument)) { - selectedTestNames = new Collection(argument.Split(new string[] { Resources.SearchStringDelimiter }, StringSplitOptions.RemoveEmptyEntries)); + selectedTestNames = new Collection(argument.Split(new string[] { CommandLineResources.SearchStringDelimiter }, StringSplitOptions.RemoveEmptyEntries)); } if (selectedTestNames == null || selectedTestNames.Count <= 0) { - throw new CommandLineException(Resources.SpecificTestsRequired); + throw new CommandLineException(CommandLineResources.SpecificTestsRequired); } // by default all filters are not discovered on launch @@ -199,7 +197,7 @@ public ArgumentProcessorResult Execute() if (commandLineOptions.Sources.Count() <= 0) { #if TODO - logger.SendMessage(TestMessageLevel.Error, Resources.MissingTestSourceFile); + logger.SendMessage(TestMessageLevel.Error, CommandLineResources.MissingTestSourceFile); #endif return ArgumentProcessorResult.Fail; } @@ -207,7 +205,7 @@ public ArgumentProcessorResult Execute() if (!string.IsNullOrWhiteSpace(commandLineOptions.TestCaseFilterValue)) { #if TODO - logger.SendMessage(TestMessageLevel.Error, Resources.InvalidTestCaseFilterValueForSpecificTests); + logger.SendMessage(TestMessageLevel.Error, CommandLineResources.InvalidTestCaseFilterValueForSpecificTests); #endif return ArgumentProcessorResult.Fail; } @@ -235,7 +233,7 @@ public ArgumentProcessorResult Execute() /// TestPlatform created based on the command line options private bool DiscoverTestsAndSelectSpecified(IEnumerable sources) { - output.WriteLine(Resources.StartingDiscovery, OutputLevel.Information); + output.WriteLine(CommandLineResources.StartingDiscovery, OutputLevel.Information); return this.testRequestManager.DiscoverTests( new DiscoveryRequestPayload() { Sources = sources, RunSettings = effectiveRunSettings }, this.discoveryEventsRegistrar); } @@ -251,7 +249,7 @@ private bool ExecuteSelectedTests() if (undiscoveredFilters.Count() != 0) { string missingFilters = string.Join(", ", undiscoveredFilters); - string warningMessage = string.Format(CultureInfo.CurrentCulture, Resources.SomeTestsUnavailableAfterFiltering, discoveredTestCount, missingFilters); + string warningMessage = string.Format(CultureInfo.CurrentCulture, CommandLineResources.SomeTestsUnavailableAfterFiltering, discoveredTestCount, missingFilters); output.Warning(warningMessage); } @@ -268,16 +266,16 @@ private bool ExecuteSelectedTests() if (discoveredTestCount > 0) { // No tests that matched any of the given strings. - warningMessage = string.Format(CultureInfo.CurrentCulture, Resources.NoTestsAvailableAfterFiltering, discoveredTestCount, String.Join(", ", selectedTestNames)); + warningMessage = string.Format(CultureInfo.CurrentCulture, CommandLineResources.NoTestsAvailableAfterFiltering, discoveredTestCount, String.Join(", ", selectedTestNames)); } else { // No tests were discovered from the given sources. - warningMessage = string.Format(CultureInfo.CurrentUICulture, Resources.NoTestsAvailableInSources, string.Join(", ", commandLineOptions.Sources)); + warningMessage = string.Format(CultureInfo.CurrentUICulture, CommandLineResources.NoTestsAvailableInSources, string.Join(", ", commandLineOptions.Sources)); if (!commandLineOptions.UseVsixExtensions) { - warningMessage = string.Format(CultureInfo.CurrentCulture, Resources.NoTestsFoundWarningMessageWithSuggestionToUseVsix, warningMessage, Resources.SuggestUseVsixExtensionsIfNoTestsIsFound); + warningMessage = string.Format(CultureInfo.CurrentCulture, CommandLineResources.NoTestsFoundWarningMessageWithSuggestionToUseVsix, warningMessage, CommandLineResources.SuggestUseVsixExtensionsIfNoTestsIsFound); } } output.Warning(warningMessage); diff --git a/src/vstest.console/Processors/RunTestsArgumentProcessor.cs b/src/vstest.console/Processors/RunTestsArgumentProcessor.cs index 28092de345..e9a023acaa 100644 --- a/src/vstest.console/Processors/RunTestsArgumentProcessor.cs +++ b/src/vstest.console/Processors/RunTestsArgumentProcessor.cs @@ -4,20 +4,19 @@ namespace Microsoft.VisualStudio.TestPlatform.CommandLine.Processors { using System; using System.Collections.Generic; - using System.Linq; using System.Diagnostics.Contracts; + using System.Linq; - using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client; + using Microsoft.VisualStudio.TestPlatform.Client.RequestHelper; + using Microsoft.VisualStudio.TestPlatform.CommandLine.Processors.Utilities; + using Microsoft.VisualStudio.TestPlatform.CommandLine.TestPlatformHelpers; + using Microsoft.VisualStudio.TestPlatform.Common; + using Microsoft.VisualStudio.TestPlatform.Common.Interfaces; using Microsoft.VisualStudio.TestPlatform.ObjectModel; - using Resources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client; using Microsoft.VisualStudio.TestPlatform.Utilities; - using Microsoft.VisualStudio.TestPlatform.CommandLine.TestPlatformHelpers; - - using Microsoft.VisualStudio.TestPlatform.CommandLine.Processors.Utilities; - using Microsoft.VisualStudio.TestPlatform.Common.Interfaces; - using Microsoft.VisualStudio.TestPlatform.Common; - using Microsoft.VisualStudio.TestPlatform.Client.RequestHelper; + using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; internal class RunTestsArgumentProcessor : IArgumentProcessor { @@ -71,7 +70,7 @@ internal class RunTestsArgumentProcessorCapabilities : BaseArgumentProcessorCapa public override ArgumentProcessorPriority Priority => ArgumentProcessorPriority.Normal; - public override string HelpContentResourceName => Resources.RunTestsArgumentHelp; + public override string HelpContentResourceName => CommandLineResources.RunTestsArgumentHelp; public override HelpContentPriority HelpPriority => HelpContentPriority.RunTestsArgumentProcessorHelpPriority; @@ -151,12 +150,12 @@ public ArgumentProcessorResult Execute() if (anySource == null) { #if TODO - logger.SendMessage(TestMessageLevel.Error, Resources.MissingTestSourceFile); + logger.SendMessage(TestMessageLevel.Error, CommandLineResources.MissingTestSourceFile); #endif return ArgumentProcessorResult.Fail; } - this.output.WriteLine(Resources.StartingExecution, OutputLevel.Information); + this.output.WriteLine(CommandLineResources.StartingExecution, OutputLevel.Information); var success = true; if (this.commandLineOptions.Sources.Any()) @@ -233,7 +232,7 @@ private void TestRunRequest_OnRunCompletion(object sender, TestRunCompleteEventA // Indicate the user to use vsix extensions command if there are no tests found //if (Utilities.ShouldIndicateTheUserToUseVsixExtensionsCommand(testsFoundInAnySource, commandLineOptions)) //{ - // output.Information(Resources.SuggestUseVsixExtensionsIfNoTestsIsFound); + // output.Information(CommandLineResources.SuggestUseVsixExtensionsIfNoTestsIsFound); // output.WriteLine(string.Empty, OutputLevel.Information); //} } diff --git a/src/vstest.console/Processors/TestAdapterPathArgumentProcessor.cs b/src/vstest.console/Processors/TestAdapterPathArgumentProcessor.cs index bff58d7036..516aa4d9b1 100644 --- a/src/vstest.console/Processors/TestAdapterPathArgumentProcessor.cs +++ b/src/vstest.console/Processors/TestAdapterPathArgumentProcessor.cs @@ -11,6 +11,7 @@ namespace Microsoft.VisualStudio.TestPlatform.CommandLine.Processors using Microsoft.VisualStudio.TestPlatform.Client; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client; using Microsoft.VisualStudio.TestPlatform.Utilities; + using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; /// /// Allows the user to specify a path to load custom adapters from. @@ -81,7 +82,7 @@ internal class TestAdapterPathArgumentProcessorCapabilities : BaseArgumentProces public override ArgumentProcessorPriority Priority => ArgumentProcessorPriority.TestAdapterPath; - public override string HelpContentResourceName => CommandLine.Resources.TestAdapterPathHelp; + public override string HelpContentResourceName => CommandLineResources.TestAdapterPathHelp; public override HelpContentPriority HelpPriority => HelpContentPriority.TestAdapterPathArgumentProcessorHelpPriority; } @@ -139,7 +140,7 @@ public void Initialize(string argument) if (string.IsNullOrWhiteSpace(argument)) { throw new CommandLineException( - string.Format(CultureInfo.CurrentCulture, CommandLine.Resources.TestAdapterPathValueRequired)); + string.Format(CultureInfo.CurrentCulture, CommandLineResources.TestAdapterPathValueRequired)); } string customAdaptersPath; @@ -152,13 +153,13 @@ public void Initialize(string argument) customAdaptersPath = Path.GetFullPath(argument); if (!Directory.Exists(customAdaptersPath)) { - throw new DirectoryNotFoundException(CommandLine.Resources.TestAdapterPathDoesNotExist); + throw new DirectoryNotFoundException(CommandLineResources.TestAdapterPathDoesNotExist); } } catch (Exception e) { throw new CommandLineException( - string.Format(CultureInfo.CurrentCulture, CommandLine.Resources.InvalidTestAdapterPathCommand, argument, e.Message)); + string.Format(CultureInfo.CurrentCulture, CommandLineResources.InvalidTestAdapterPathCommand, argument, e.Message)); } this.commandLineOptions.TestAdapterPath = customAdaptersPath; @@ -171,7 +172,7 @@ public void Initialize(string argument) else { // Print a warning about not finding any test adapter in provided path... - this.output.Warning(CommandLine.Resources.NoAdaptersFoundInTestAdapterPath, argument); + this.output.Warning(CommandLineResources.NoAdaptersFoundInTestAdapterPath, argument); this.output.WriteLine(string.Empty, OutputLevel.Information); } } diff --git a/src/vstest.console/Processors/TestCaseFilterArgumentProcessor.cs b/src/vstest.console/Processors/TestCaseFilterArgumentProcessor.cs index 6b00608f56..275c55c295 100644 --- a/src/vstest.console/Processors/TestCaseFilterArgumentProcessor.cs +++ b/src/vstest.console/Processors/TestCaseFilterArgumentProcessor.cs @@ -6,7 +6,7 @@ namespace Microsoft.VisualStudio.TestPlatform.CommandLine.Processors using System.Diagnostics.Contracts; using System.Globalization; using Microsoft.VisualStudio.TestPlatform.CommandLine; - using Resources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources; + using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; /// /// Argument Executor for the "/TestCaseFilter" command line argument. @@ -74,7 +74,7 @@ internal class TestCaseFilterArgumentProcessorCapabilities : BaseArgumentProcess public override ArgumentProcessorPriority Priority => ArgumentProcessorPriority.Normal; - public override string HelpContentResourceName => Resources.TestCaseFilterArgumentHelp; + public override string HelpContentResourceName => CommandLineResources.TestCaseFilterArgumentHelp; public override HelpContentPriority HelpPriority => HelpContentPriority.TestCaseFilterArgumentProcessorHelpPriority; } @@ -118,7 +118,7 @@ public void Initialize(string argument) { if (string.IsNullOrWhiteSpace(argument)) { - throw new CommandLineException(string.Format(CultureInfo.CurrentUICulture, Resources.TestCaseFilterValueRequired)); + throw new CommandLineException(string.Format(CultureInfo.CurrentUICulture, CommandLineResources.TestCaseFilterValueRequired)); } this.commandLineOptions.TestCaseFilterValue = argument; diff --git a/src/vstest.console/Resources.Designer.cs b/src/vstest.console/Resources/Resources.Designer.cs similarity index 99% rename from src/vstest.console/Resources.Designer.cs rename to src/vstest.console/Resources/Resources.Designer.cs index a75c81d8b7..cdbe3868e1 100644 --- a/src/vstest.console/Resources.Designer.cs +++ b/src/vstest.console/Resources/Resources.Designer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace Microsoft.VisualStudio.TestPlatform.CommandLine { +namespace Microsoft.VisualStudio.TestPlatform.CommandLine.Resources { using System; using System.Reflection; @@ -38,7 +38,7 @@ internal Resources() { public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("vstest.console.Resources", typeof(Resources).GetTypeInfo().Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("vstest.console.Resources.Resources", typeof(Resources).GetTypeInfo().Assembly); resourceMan = temp; } return resourceMan; diff --git a/src/vstest.console/Resources.resx b/src/vstest.console/Resources/Resources.resx similarity index 100% rename from src/vstest.console/Resources.resx rename to src/vstest.console/Resources/Resources.resx diff --git a/src/vstest.console/Resources/xlf/Resources.cs.xlf b/src/vstest.console/Resources/xlf/Resources.cs.xlf new file mode 100644 index 0000000000..3e78e0c744 --- /dev/null +++ b/src/vstest.console/Resources/xlf/Resources.cs.xlf @@ -0,0 +1,846 @@ + + + + + + Duplicate source {0} specified. + Ignoring the specified duplicate source '{0}'. + + + + '{0}' not found. + Could not find file {0}. + + + + The following Test Discovery Add-Ins are available: + The following Test Discovery Add-Ins are available: + + + + The following Test Execution Add-Ins are available: + The following Test Execution Add-Ins are available: + + + + {0} + {0} + {Locked} + + + {0}: {1} + {0}: {1} + + + + The following Test Logger Add-Ins are available: + The following Test Logger Add-Ins are available: + + + + {0} + {0} + {Locked} + + + Error: {0} + Error: {0} + + + + , {0} + , {0} + Format used to comma separate a list of values. + + + The parameter "{0}" should be provided only once. + The parameter "{0}" should be provided only once. + + + + Exception occurred when instantiating extension '{0}': {1} + Exception occurred when instantiating extension '{0}': {1} + + + + The following Tests are available: + The following Tests are available: + + + + Unrecognized parameter "{0}". + Unrecognized parameter "{0}". + + + + The test source file "{0}" provided was not found. + The test source file "{0}" provided was not found. + + + + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + -?|--Help|/?|/Help + Display this usage message. + -?|--Help|/?|/Help + Display this usage message. + + + + Copyright (c) Microsoft Corporation. All rights reserved. + Copyright (c) Microsoft Corporation. All rights reserved. + + + + Microsoft (R) Test Execution Command Line Tool Version {0} + Microsoft (R) Test Execution Command Line Tool Version {0} + + + + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + + + + Description: Runs tests from the specified files. + Description: Runs tests from the specified files. + + + + Options: + Options: + Section Header for subsequent command help listing + + + Usage: vstest.console.exe [Arguments] [Options] + Usage: vstest.console.exe [Arguments] [Options] + + + + No test source files were specified. + No test source files were specified. + + + + No arguments were specified. + No arguments were specified. + + + + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + + + + The following Settings Providers Add-Ins are available: + The following Settings Providers Add-Ins are available: + + + + --Settings|/Settings:<Settings File> + Settings to use when running tests. + --Settings|/Settings:<Settings File> + Settings to use when running tests. + + + + The /Settings parameter requires a settings file to be provided. + The /Settings parameter requires a settings file to be provided. + + + + The Settings file '{0}' could not be found. + The Settings file '{0}' could not be found. + + + + Test Run Failed. + Test Run Failed. + + + + Test Run Successful. + Test Run Successful. + + + + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + + + + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + + + + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + + + + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + + + + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + + + + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + + + + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + + + + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + + + + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + + + + /ListDiscoverers + Lists installed test discoverers. + /ListDiscoverers + Lists installed test discoverers. + + + + /ListExecutors + Lists installed test executors. + /ListExecutors + Lists installed test executors. + + + + /ListLoggers + Lists installed test loggers. + /ListLoggers + Lists installed test loggers. + + + + /ListSettingsProviders + Lists installed test settings providers. + /ListSettingsProviders + Lists installed test settings providers. + + + + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + + + + Time elapsed : + Time elapsed : + + + + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + + + + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + + + + , + , + + + + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + Please verify if the console output looks good after modifiaction. + + + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + + + + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + + + + {0} {1} + {0} {1} + + + + FriendlyName: {0} + FriendlyName: {0} + + + + Uri: {0} + Uri: {0} + + + + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + SettingName: {0} + SettingName: {0} + + + + Supported File Types: + Supported File Types: + + + + {0} + {0} + + + + {0}, + {0}, + + + + Default Executor Uri: {0} + Default Executor Uri: {0} + + + + Uri: {0} + Uri: {0} + + + + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + + + + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + + + + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + + + + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + + + + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + + + + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + + + + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + + + + Could not start test run for unit tests for Windows Store app: {0}. + Could not start test run for unit tests for Windows Store app: {0}. + + + + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + + + + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + + + + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + + + + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + + + + Only one app package (.appx file) can be specified for running tests. + Only one app package (.appx file) can be specified for running tests. + + + + Starting test discovery, please wait... + Starting test discovery, please wait... + + + + Starting test execution, please wait... + Starting test execution, please wait... + + + + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + + + + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + + + + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + + + + Settings file provided do not confirm to required format. + Settings file provided do not confirm to required format. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + + + + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + + + + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + + + + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + + + + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + + + + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + + + + The custom test adapter search path provided was not found, provide a valid path and try again. + The custom test adapter search path provided was not found, provide a valid path and try again. + + + + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + + + + Could not start test run for the tests for Windows Phone app: {0}. + Could not start test run for the tests for Windows Phone app: {0}. + + + + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + + + + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + + + + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + + + + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + + + + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + + + + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + + + + Cannot be null or empty + Cannot be null or empty + + + + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + + + + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + + + + Unable to find the assembly under test. Please make sure that the project is built. + Unable to find the assembly under test. Please make sure that the project is built. + + + + The Path {0} does not exist. + The Path {0} does not exist. + + + + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + + + + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + + + + The given configuration is invalid. + The given configuration is invalid. + + + + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + + + + The BuildBasePath was not found, provide a valid path and try again. + The BuildBasePath was not found, provide a valid path and try again. + + + + The Output path was not found, provide a valid path and try again. + The Output path was not found, provide a valid path and try again. + + + + Additional Information Messages: + Additional Information Messages: + + + + Days + Days + + + + Error Message: + Error Message: + + + + Test execution time: {0:0.0000} {1} + Test execution time: {0:0.0000} {1} + + + + Hours + Hours + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Minutes + Minutes + + + + Seconds + Seconds + + + + Stack Trace: + Stack Trace: + + + + Standard Error Messages: + Standard Error Messages: + + + + Standard Output Messages: + Standard Output Messages: + + + + + + + + + Attachments: + Attachments: + + + + {0} + {0} + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + Failed {0} + Failed {0} + Message which is written to the console when a test fails. + + + Passed {0} + Passed {0} + Message which is written to the console when a test passes. + + + Skipped {0} + Skipped {0} + + + + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + + + + Discovery failed for given sources. Exception : {0} + Discovery failed for given sources. Exception : {0} + + + + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + + + + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + + + + Arguments: + Arguments: + + + + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + + + + The file {0} provided is read only + The file {0} provided is read only + + + + + \ No newline at end of file diff --git a/src/vstest.console/Resources/xlf/Resources.de.xlf b/src/vstest.console/Resources/xlf/Resources.de.xlf new file mode 100644 index 0000000000..9cc887b0a1 --- /dev/null +++ b/src/vstest.console/Resources/xlf/Resources.de.xlf @@ -0,0 +1,846 @@ + + + + + + Duplicate source {0} specified. + Ignoring the specified duplicate source '{0}'. + + + + '{0}' not found. + Could not find file {0}. + + + + The following Test Discovery Add-Ins are available: + The following Test Discovery Add-Ins are available: + + + + The following Test Execution Add-Ins are available: + The following Test Execution Add-Ins are available: + + + + {0} + {0} + {Locked} + + + {0}: {1} + {0}: {1} + + + + The following Test Logger Add-Ins are available: + The following Test Logger Add-Ins are available: + + + + {0} + {0} + {Locked} + + + Error: {0} + Error: {0} + + + + , {0} + , {0} + Format used to comma separate a list of values. + + + The parameter "{0}" should be provided only once. + The parameter "{0}" should be provided only once. + + + + Exception occurred when instantiating extension '{0}': {1} + Exception occurred when instantiating extension '{0}': {1} + + + + The following Tests are available: + The following Tests are available: + + + + Unrecognized parameter "{0}". + Unrecognized parameter "{0}". + + + + The test source file "{0}" provided was not found. + The test source file "{0}" provided was not found. + + + + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + -?|--Help|/?|/Help + Display this usage message. + -?|--Help|/?|/Help + Display this usage message. + + + + Copyright (c) Microsoft Corporation. All rights reserved. + Copyright (c) Microsoft Corporation. All rights reserved. + + + + Microsoft (R) Test Execution Command Line Tool Version {0} + Microsoft (R) Test Execution Command Line Tool Version {0} + + + + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + + + + Description: Runs tests from the specified files. + Description: Runs tests from the specified files. + + + + Options: + Options: + Section Header for subsequent command help listing + + + Usage: vstest.console.exe [Arguments] [Options] + Usage: vstest.console.exe [Arguments] [Options] + + + + No test source files were specified. + No test source files were specified. + + + + No arguments were specified. + No arguments were specified. + + + + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + + + + The following Settings Providers Add-Ins are available: + The following Settings Providers Add-Ins are available: + + + + --Settings|/Settings:<Settings File> + Settings to use when running tests. + --Settings|/Settings:<Settings File> + Settings to use when running tests. + + + + The /Settings parameter requires a settings file to be provided. + The /Settings parameter requires a settings file to be provided. + + + + The Settings file '{0}' could not be found. + The Settings file '{0}' could not be found. + + + + Test Run Failed. + Test Run Failed. + + + + Test Run Successful. + Test Run Successful. + + + + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + + + + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + + + + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + + + + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + + + + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + + + + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + + + + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + + + + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + + + + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + + + + /ListDiscoverers + Lists installed test discoverers. + /ListDiscoverers + Lists installed test discoverers. + + + + /ListExecutors + Lists installed test executors. + /ListExecutors + Lists installed test executors. + + + + /ListLoggers + Lists installed test loggers. + /ListLoggers + Lists installed test loggers. + + + + /ListSettingsProviders + Lists installed test settings providers. + /ListSettingsProviders + Lists installed test settings providers. + + + + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + + + + Time elapsed : + Time elapsed : + + + + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + + + + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + + + + , + , + + + + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + Please verify if the console output looks good after modifiaction. + + + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + + + + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + + + + {0} {1} + {0} {1} + + + + FriendlyName: {0} + FriendlyName: {0} + + + + Uri: {0} + Uri: {0} + + + + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + SettingName: {0} + SettingName: {0} + + + + Supported File Types: + Supported File Types: + + + + {0} + {0} + + + + {0}, + {0}, + + + + Default Executor Uri: {0} + Default Executor Uri: {0} + + + + Uri: {0} + Uri: {0} + + + + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + + + + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + + + + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + + + + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + + + + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + + + + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + + + + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + + + + Could not start test run for unit tests for Windows Store app: {0}. + Could not start test run for unit tests for Windows Store app: {0}. + + + + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + + + + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + + + + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + + + + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + + + + Only one app package (.appx file) can be specified for running tests. + Only one app package (.appx file) can be specified for running tests. + + + + Starting test discovery, please wait... + Starting test discovery, please wait... + + + + Starting test execution, please wait... + Starting test execution, please wait... + + + + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + + + + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + + + + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + + + + Settings file provided do not confirm to required format. + Settings file provided do not confirm to required format. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + + + + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + + + + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + + + + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + + + + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + + + + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + + + + The custom test adapter search path provided was not found, provide a valid path and try again. + The custom test adapter search path provided was not found, provide a valid path and try again. + + + + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + + + + Could not start test run for the tests for Windows Phone app: {0}. + Could not start test run for the tests for Windows Phone app: {0}. + + + + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + + + + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + + + + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + + + + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + + + + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + + + + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + + + + Cannot be null or empty + Cannot be null or empty + + + + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + + + + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + + + + Unable to find the assembly under test. Please make sure that the project is built. + Unable to find the assembly under test. Please make sure that the project is built. + + + + The Path {0} does not exist. + The Path {0} does not exist. + + + + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + + + + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + + + + The given configuration is invalid. + The given configuration is invalid. + + + + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + + + + The BuildBasePath was not found, provide a valid path and try again. + The BuildBasePath was not found, provide a valid path and try again. + + + + The Output path was not found, provide a valid path and try again. + The Output path was not found, provide a valid path and try again. + + + + Additional Information Messages: + Additional Information Messages: + + + + Days + Days + + + + Error Message: + Error Message: + + + + Test execution time: {0:0.0000} {1} + Test execution time: {0:0.0000} {1} + + + + Hours + Hours + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Minutes + Minutes + + + + Seconds + Seconds + + + + Stack Trace: + Stack Trace: + + + + Standard Error Messages: + Standard Error Messages: + + + + Standard Output Messages: + Standard Output Messages: + + + + + + + + + Attachments: + Attachments: + + + + {0} + {0} + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + Failed {0} + Failed {0} + Message which is written to the console when a test fails. + + + Passed {0} + Passed {0} + Message which is written to the console when a test passes. + + + Skipped {0} + Skipped {0} + + + + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + + + + Discovery failed for given sources. Exception : {0} + Discovery failed for given sources. Exception : {0} + + + + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + + + + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + + + + Arguments: + Arguments: + + + + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + + + + The file {0} provided is read only + The file {0} provided is read only + + + + + \ No newline at end of file diff --git a/src/vstest.console/Resources/xlf/Resources.es.xlf b/src/vstest.console/Resources/xlf/Resources.es.xlf new file mode 100644 index 0000000000..2afcdfdd73 --- /dev/null +++ b/src/vstest.console/Resources/xlf/Resources.es.xlf @@ -0,0 +1,846 @@ + + + + + + Duplicate source {0} specified. + Ignoring the specified duplicate source '{0}'. + + + + '{0}' not found. + Could not find file {0}. + + + + The following Test Discovery Add-Ins are available: + The following Test Discovery Add-Ins are available: + + + + The following Test Execution Add-Ins are available: + The following Test Execution Add-Ins are available: + + + + {0} + {0} + {Locked} + + + {0}: {1} + {0}: {1} + + + + The following Test Logger Add-Ins are available: + The following Test Logger Add-Ins are available: + + + + {0} + {0} + {Locked} + + + Error: {0} + Error: {0} + + + + , {0} + , {0} + Format used to comma separate a list of values. + + + The parameter "{0}" should be provided only once. + The parameter "{0}" should be provided only once. + + + + Exception occurred when instantiating extension '{0}': {1} + Exception occurred when instantiating extension '{0}': {1} + + + + The following Tests are available: + The following Tests are available: + + + + Unrecognized parameter "{0}". + Unrecognized parameter "{0}". + + + + The test source file "{0}" provided was not found. + The test source file "{0}" provided was not found. + + + + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + -?|--Help|/?|/Help + Display this usage message. + -?|--Help|/?|/Help + Display this usage message. + + + + Copyright (c) Microsoft Corporation. All rights reserved. + Copyright (c) Microsoft Corporation. All rights reserved. + + + + Microsoft (R) Test Execution Command Line Tool Version {0} + Microsoft (R) Test Execution Command Line Tool Version {0} + + + + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + + + + Description: Runs tests from the specified files. + Description: Runs tests from the specified files. + + + + Options: + Options: + Section Header for subsequent command help listing + + + Usage: vstest.console.exe [Arguments] [Options] + Usage: vstest.console.exe [Arguments] [Options] + + + + No test source files were specified. + No test source files were specified. + + + + No arguments were specified. + No arguments were specified. + + + + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + + + + The following Settings Providers Add-Ins are available: + The following Settings Providers Add-Ins are available: + + + + --Settings|/Settings:<Settings File> + Settings to use when running tests. + --Settings|/Settings:<Settings File> + Settings to use when running tests. + + + + The /Settings parameter requires a settings file to be provided. + The /Settings parameter requires a settings file to be provided. + + + + The Settings file '{0}' could not be found. + The Settings file '{0}' could not be found. + + + + Test Run Failed. + Test Run Failed. + + + + Test Run Successful. + Test Run Successful. + + + + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + + + + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + + + + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + + + + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + + + + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + + + + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + + + + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + + + + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + + + + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + + + + /ListDiscoverers + Lists installed test discoverers. + /ListDiscoverers + Lists installed test discoverers. + + + + /ListExecutors + Lists installed test executors. + /ListExecutors + Lists installed test executors. + + + + /ListLoggers + Lists installed test loggers. + /ListLoggers + Lists installed test loggers. + + + + /ListSettingsProviders + Lists installed test settings providers. + /ListSettingsProviders + Lists installed test settings providers. + + + + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + + + + Time elapsed : + Time elapsed : + + + + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + + + + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + + + + , + , + + + + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + Please verify if the console output looks good after modifiaction. + + + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + + + + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + + + + {0} {1} + {0} {1} + + + + FriendlyName: {0} + FriendlyName: {0} + + + + Uri: {0} + Uri: {0} + + + + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + SettingName: {0} + SettingName: {0} + + + + Supported File Types: + Supported File Types: + + + + {0} + {0} + + + + {0}, + {0}, + + + + Default Executor Uri: {0} + Default Executor Uri: {0} + + + + Uri: {0} + Uri: {0} + + + + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + + + + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + + + + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + + + + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + + + + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + + + + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + + + + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + + + + Could not start test run for unit tests for Windows Store app: {0}. + Could not start test run for unit tests for Windows Store app: {0}. + + + + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + + + + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + + + + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + + + + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + + + + Only one app package (.appx file) can be specified for running tests. + Only one app package (.appx file) can be specified for running tests. + + + + Starting test discovery, please wait... + Starting test discovery, please wait... + + + + Starting test execution, please wait... + Starting test execution, please wait... + + + + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + + + + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + + + + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + + + + Settings file provided do not confirm to required format. + Settings file provided do not confirm to required format. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + + + + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + + + + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + + + + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + + + + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + + + + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + + + + The custom test adapter search path provided was not found, provide a valid path and try again. + The custom test adapter search path provided was not found, provide a valid path and try again. + + + + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + + + + Could not start test run for the tests for Windows Phone app: {0}. + Could not start test run for the tests for Windows Phone app: {0}. + + + + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + + + + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + + + + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + + + + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + + + + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + + + + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + + + + Cannot be null or empty + Cannot be null or empty + + + + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + + + + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + + + + Unable to find the assembly under test. Please make sure that the project is built. + Unable to find the assembly under test. Please make sure that the project is built. + + + + The Path {0} does not exist. + The Path {0} does not exist. + + + + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + + + + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + + + + The given configuration is invalid. + The given configuration is invalid. + + + + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + + + + The BuildBasePath was not found, provide a valid path and try again. + The BuildBasePath was not found, provide a valid path and try again. + + + + The Output path was not found, provide a valid path and try again. + The Output path was not found, provide a valid path and try again. + + + + Additional Information Messages: + Additional Information Messages: + + + + Days + Days + + + + Error Message: + Error Message: + + + + Test execution time: {0:0.0000} {1} + Test execution time: {0:0.0000} {1} + + + + Hours + Hours + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Minutes + Minutes + + + + Seconds + Seconds + + + + Stack Trace: + Stack Trace: + + + + Standard Error Messages: + Standard Error Messages: + + + + Standard Output Messages: + Standard Output Messages: + + + + + + + + + Attachments: + Attachments: + + + + {0} + {0} + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + Failed {0} + Failed {0} + Message which is written to the console when a test fails. + + + Passed {0} + Passed {0} + Message which is written to the console when a test passes. + + + Skipped {0} + Skipped {0} + + + + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + + + + Discovery failed for given sources. Exception : {0} + Discovery failed for given sources. Exception : {0} + + + + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + + + + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + + + + Arguments: + Arguments: + + + + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + + + + The file {0} provided is read only + The file {0} provided is read only + + + + + \ No newline at end of file diff --git a/src/vstest.console/Resources/xlf/Resources.fr.xlf b/src/vstest.console/Resources/xlf/Resources.fr.xlf new file mode 100644 index 0000000000..c012358b70 --- /dev/null +++ b/src/vstest.console/Resources/xlf/Resources.fr.xlf @@ -0,0 +1,846 @@ + + + + + + Duplicate source {0} specified. + Ignoring the specified duplicate source '{0}'. + + + + '{0}' not found. + Could not find file {0}. + + + + The following Test Discovery Add-Ins are available: + The following Test Discovery Add-Ins are available: + + + + The following Test Execution Add-Ins are available: + The following Test Execution Add-Ins are available: + + + + {0} + {0} + {Locked} + + + {0}: {1} + {0}: {1} + + + + The following Test Logger Add-Ins are available: + The following Test Logger Add-Ins are available: + + + + {0} + {0} + {Locked} + + + Error: {0} + Error: {0} + + + + , {0} + , {0} + Format used to comma separate a list of values. + + + The parameter "{0}" should be provided only once. + The parameter "{0}" should be provided only once. + + + + Exception occurred when instantiating extension '{0}': {1} + Exception occurred when instantiating extension '{0}': {1} + + + + The following Tests are available: + The following Tests are available: + + + + Unrecognized parameter "{0}". + Unrecognized parameter "{0}". + + + + The test source file "{0}" provided was not found. + The test source file "{0}" provided was not found. + + + + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + -?|--Help|/?|/Help + Display this usage message. + -?|--Help|/?|/Help + Display this usage message. + + + + Copyright (c) Microsoft Corporation. All rights reserved. + Copyright (c) Microsoft Corporation. All rights reserved. + + + + Microsoft (R) Test Execution Command Line Tool Version {0} + Microsoft (R) Test Execution Command Line Tool Version {0} + + + + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + + + + Description: Runs tests from the specified files. + Description: Runs tests from the specified files. + + + + Options: + Options: + Section Header for subsequent command help listing + + + Usage: vstest.console.exe [Arguments] [Options] + Usage: vstest.console.exe [Arguments] [Options] + + + + No test source files were specified. + No test source files were specified. + + + + No arguments were specified. + No arguments were specified. + + + + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + + + + The following Settings Providers Add-Ins are available: + The following Settings Providers Add-Ins are available: + + + + --Settings|/Settings:<Settings File> + Settings to use when running tests. + --Settings|/Settings:<Settings File> + Settings to use when running tests. + + + + The /Settings parameter requires a settings file to be provided. + The /Settings parameter requires a settings file to be provided. + + + + The Settings file '{0}' could not be found. + The Settings file '{0}' could not be found. + + + + Test Run Failed. + Test Run Failed. + + + + Test Run Successful. + Test Run Successful. + + + + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + + + + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + + + + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + + + + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + + + + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + + + + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + + + + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + + + + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + + + + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + + + + /ListDiscoverers + Lists installed test discoverers. + /ListDiscoverers + Lists installed test discoverers. + + + + /ListExecutors + Lists installed test executors. + /ListExecutors + Lists installed test executors. + + + + /ListLoggers + Lists installed test loggers. + /ListLoggers + Lists installed test loggers. + + + + /ListSettingsProviders + Lists installed test settings providers. + /ListSettingsProviders + Lists installed test settings providers. + + + + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + + + + Time elapsed : + Time elapsed : + + + + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + + + + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + + + + , + , + + + + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + Please verify if the console output looks good after modifiaction. + + + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + + + + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + + + + {0} {1} + {0} {1} + + + + FriendlyName: {0} + FriendlyName: {0} + + + + Uri: {0} + Uri: {0} + + + + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + SettingName: {0} + SettingName: {0} + + + + Supported File Types: + Supported File Types: + + + + {0} + {0} + + + + {0}, + {0}, + + + + Default Executor Uri: {0} + Default Executor Uri: {0} + + + + Uri: {0} + Uri: {0} + + + + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + + + + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + + + + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + + + + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + + + + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + + + + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + + + + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + + + + Could not start test run for unit tests for Windows Store app: {0}. + Could not start test run for unit tests for Windows Store app: {0}. + + + + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + + + + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + + + + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + + + + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + + + + Only one app package (.appx file) can be specified for running tests. + Only one app package (.appx file) can be specified for running tests. + + + + Starting test discovery, please wait... + Starting test discovery, please wait... + + + + Starting test execution, please wait... + Starting test execution, please wait... + + + + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + + + + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + + + + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + + + + Settings file provided do not confirm to required format. + Settings file provided do not confirm to required format. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + + + + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + + + + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + + + + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + + + + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + + + + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + + + + The custom test adapter search path provided was not found, provide a valid path and try again. + The custom test adapter search path provided was not found, provide a valid path and try again. + + + + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + + + + Could not start test run for the tests for Windows Phone app: {0}. + Could not start test run for the tests for Windows Phone app: {0}. + + + + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + + + + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + + + + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + + + + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + + + + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + + + + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + + + + Cannot be null or empty + Cannot be null or empty + + + + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + + + + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + + + + Unable to find the assembly under test. Please make sure that the project is built. + Unable to find the assembly under test. Please make sure that the project is built. + + + + The Path {0} does not exist. + The Path {0} does not exist. + + + + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + + + + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + + + + The given configuration is invalid. + The given configuration is invalid. + + + + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + + + + The BuildBasePath was not found, provide a valid path and try again. + The BuildBasePath was not found, provide a valid path and try again. + + + + The Output path was not found, provide a valid path and try again. + The Output path was not found, provide a valid path and try again. + + + + Additional Information Messages: + Additional Information Messages: + + + + Days + Days + + + + Error Message: + Error Message: + + + + Test execution time: {0:0.0000} {1} + Test execution time: {0:0.0000} {1} + + + + Hours + Hours + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Minutes + Minutes + + + + Seconds + Seconds + + + + Stack Trace: + Stack Trace: + + + + Standard Error Messages: + Standard Error Messages: + + + + Standard Output Messages: + Standard Output Messages: + + + + + + + + + Attachments: + Attachments: + + + + {0} + {0} + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + Failed {0} + Failed {0} + Message which is written to the console when a test fails. + + + Passed {0} + Passed {0} + Message which is written to the console when a test passes. + + + Skipped {0} + Skipped {0} + + + + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + + + + Discovery failed for given sources. Exception : {0} + Discovery failed for given sources. Exception : {0} + + + + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + + + + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + + + + Arguments: + Arguments: + + + + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + + + + The file {0} provided is read only + The file {0} provided is read only + + + + + \ No newline at end of file diff --git a/src/vstest.console/Resources/xlf/Resources.it.xlf b/src/vstest.console/Resources/xlf/Resources.it.xlf new file mode 100644 index 0000000000..c2cdfa8612 --- /dev/null +++ b/src/vstest.console/Resources/xlf/Resources.it.xlf @@ -0,0 +1,846 @@ + + + + + + Duplicate source {0} specified. + Ignoring the specified duplicate source '{0}'. + + + + '{0}' not found. + Could not find file {0}. + + + + The following Test Discovery Add-Ins are available: + The following Test Discovery Add-Ins are available: + + + + The following Test Execution Add-Ins are available: + The following Test Execution Add-Ins are available: + + + + {0} + {0} + {Locked} + + + {0}: {1} + {0}: {1} + + + + The following Test Logger Add-Ins are available: + The following Test Logger Add-Ins are available: + + + + {0} + {0} + {Locked} + + + Error: {0} + Error: {0} + + + + , {0} + , {0} + Format used to comma separate a list of values. + + + The parameter "{0}" should be provided only once. + The parameter "{0}" should be provided only once. + + + + Exception occurred when instantiating extension '{0}': {1} + Exception occurred when instantiating extension '{0}': {1} + + + + The following Tests are available: + The following Tests are available: + + + + Unrecognized parameter "{0}". + Unrecognized parameter "{0}". + + + + The test source file "{0}" provided was not found. + The test source file "{0}" provided was not found. + + + + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + -?|--Help|/?|/Help + Display this usage message. + -?|--Help|/?|/Help + Display this usage message. + + + + Copyright (c) Microsoft Corporation. All rights reserved. + Copyright (c) Microsoft Corporation. All rights reserved. + + + + Microsoft (R) Test Execution Command Line Tool Version {0} + Microsoft (R) Test Execution Command Line Tool Version {0} + + + + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + + + + Description: Runs tests from the specified files. + Description: Runs tests from the specified files. + + + + Options: + Options: + Section Header for subsequent command help listing + + + Usage: vstest.console.exe [Arguments] [Options] + Usage: vstest.console.exe [Arguments] [Options] + + + + No test source files were specified. + No test source files were specified. + + + + No arguments were specified. + No arguments were specified. + + + + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + + + + The following Settings Providers Add-Ins are available: + The following Settings Providers Add-Ins are available: + + + + --Settings|/Settings:<Settings File> + Settings to use when running tests. + --Settings|/Settings:<Settings File> + Settings to use when running tests. + + + + The /Settings parameter requires a settings file to be provided. + The /Settings parameter requires a settings file to be provided. + + + + The Settings file '{0}' could not be found. + The Settings file '{0}' could not be found. + + + + Test Run Failed. + Test Run Failed. + + + + Test Run Successful. + Test Run Successful. + + + + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + + + + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + + + + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + + + + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + + + + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + + + + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + + + + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + + + + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + + + + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + + + + /ListDiscoverers + Lists installed test discoverers. + /ListDiscoverers + Lists installed test discoverers. + + + + /ListExecutors + Lists installed test executors. + /ListExecutors + Lists installed test executors. + + + + /ListLoggers + Lists installed test loggers. + /ListLoggers + Lists installed test loggers. + + + + /ListSettingsProviders + Lists installed test settings providers. + /ListSettingsProviders + Lists installed test settings providers. + + + + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + + + + Time elapsed : + Time elapsed : + + + + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + + + + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + + + + , + , + + + + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + Please verify if the console output looks good after modifiaction. + + + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + + + + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + + + + {0} {1} + {0} {1} + + + + FriendlyName: {0} + FriendlyName: {0} + + + + Uri: {0} + Uri: {0} + + + + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + SettingName: {0} + SettingName: {0} + + + + Supported File Types: + Supported File Types: + + + + {0} + {0} + + + + {0}, + {0}, + + + + Default Executor Uri: {0} + Default Executor Uri: {0} + + + + Uri: {0} + Uri: {0} + + + + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + + + + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + + + + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + + + + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + + + + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + + + + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + + + + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + + + + Could not start test run for unit tests for Windows Store app: {0}. + Could not start test run for unit tests for Windows Store app: {0}. + + + + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + + + + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + + + + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + + + + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + + + + Only one app package (.appx file) can be specified for running tests. + Only one app package (.appx file) can be specified for running tests. + + + + Starting test discovery, please wait... + Starting test discovery, please wait... + + + + Starting test execution, please wait... + Starting test execution, please wait... + + + + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + + + + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + + + + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + + + + Settings file provided do not confirm to required format. + Settings file provided do not confirm to required format. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + + + + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + + + + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + + + + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + + + + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + + + + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + + + + The custom test adapter search path provided was not found, provide a valid path and try again. + The custom test adapter search path provided was not found, provide a valid path and try again. + + + + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + + + + Could not start test run for the tests for Windows Phone app: {0}. + Could not start test run for the tests for Windows Phone app: {0}. + + + + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + + + + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + + + + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + + + + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + + + + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + + + + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + + + + Cannot be null or empty + Cannot be null or empty + + + + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + + + + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + + + + Unable to find the assembly under test. Please make sure that the project is built. + Unable to find the assembly under test. Please make sure that the project is built. + + + + The Path {0} does not exist. + The Path {0} does not exist. + + + + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + + + + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + + + + The given configuration is invalid. + The given configuration is invalid. + + + + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + + + + The BuildBasePath was not found, provide a valid path and try again. + The BuildBasePath was not found, provide a valid path and try again. + + + + The Output path was not found, provide a valid path and try again. + The Output path was not found, provide a valid path and try again. + + + + Additional Information Messages: + Additional Information Messages: + + + + Days + Days + + + + Error Message: + Error Message: + + + + Test execution time: {0:0.0000} {1} + Test execution time: {0:0.0000} {1} + + + + Hours + Hours + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Minutes + Minutes + + + + Seconds + Seconds + + + + Stack Trace: + Stack Trace: + + + + Standard Error Messages: + Standard Error Messages: + + + + Standard Output Messages: + Standard Output Messages: + + + + + + + + + Attachments: + Attachments: + + + + {0} + {0} + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + Failed {0} + Failed {0} + Message which is written to the console when a test fails. + + + Passed {0} + Passed {0} + Message which is written to the console when a test passes. + + + Skipped {0} + Skipped {0} + + + + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + + + + Discovery failed for given sources. Exception : {0} + Discovery failed for given sources. Exception : {0} + + + + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + + + + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + + + + Arguments: + Arguments: + + + + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + + + + The file {0} provided is read only + The file {0} provided is read only + + + + + \ No newline at end of file diff --git a/src/vstest.console/Resources/xlf/Resources.ja.xlf b/src/vstest.console/Resources/xlf/Resources.ja.xlf new file mode 100644 index 0000000000..7c0b9113ff --- /dev/null +++ b/src/vstest.console/Resources/xlf/Resources.ja.xlf @@ -0,0 +1,846 @@ + + + + + + Duplicate source {0} specified. + Ignoring the specified duplicate source '{0}'. + + + + '{0}' not found. + Could not find file {0}. + + + + The following Test Discovery Add-Ins are available: + The following Test Discovery Add-Ins are available: + + + + The following Test Execution Add-Ins are available: + The following Test Execution Add-Ins are available: + + + + {0} + {0} + {Locked} + + + {0}: {1} + {0}: {1} + + + + The following Test Logger Add-Ins are available: + The following Test Logger Add-Ins are available: + + + + {0} + {0} + {Locked} + + + Error: {0} + Error: {0} + + + + , {0} + , {0} + Format used to comma separate a list of values. + + + The parameter "{0}" should be provided only once. + The parameter "{0}" should be provided only once. + + + + Exception occurred when instantiating extension '{0}': {1} + Exception occurred when instantiating extension '{0}': {1} + + + + The following Tests are available: + The following Tests are available: + + + + Unrecognized parameter "{0}". + Unrecognized parameter "{0}". + + + + The test source file "{0}" provided was not found. + The test source file "{0}" provided was not found. + + + + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + -?|--Help|/?|/Help + Display this usage message. + -?|--Help|/?|/Help + Display this usage message. + + + + Copyright (c) Microsoft Corporation. All rights reserved. + Copyright (c) Microsoft Corporation. All rights reserved. + + + + Microsoft (R) Test Execution Command Line Tool Version {0} + Microsoft (R) Test Execution Command Line Tool Version {0} + + + + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + + + + Description: Runs tests from the specified files. + Description: Runs tests from the specified files. + + + + Options: + Options: + Section Header for subsequent command help listing + + + Usage: vstest.console.exe [Arguments] [Options] + Usage: vstest.console.exe [Arguments] [Options] + + + + No test source files were specified. + No test source files were specified. + + + + No arguments were specified. + No arguments were specified. + + + + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + + + + The following Settings Providers Add-Ins are available: + The following Settings Providers Add-Ins are available: + + + + --Settings|/Settings:<Settings File> + Settings to use when running tests. + --Settings|/Settings:<Settings File> + Settings to use when running tests. + + + + The /Settings parameter requires a settings file to be provided. + The /Settings parameter requires a settings file to be provided. + + + + The Settings file '{0}' could not be found. + The Settings file '{0}' could not be found. + + + + Test Run Failed. + Test Run Failed. + + + + Test Run Successful. + Test Run Successful. + + + + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + + + + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + + + + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + + + + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + + + + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + + + + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + + + + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + + + + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + + + + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + + + + /ListDiscoverers + Lists installed test discoverers. + /ListDiscoverers + Lists installed test discoverers. + + + + /ListExecutors + Lists installed test executors. + /ListExecutors + Lists installed test executors. + + + + /ListLoggers + Lists installed test loggers. + /ListLoggers + Lists installed test loggers. + + + + /ListSettingsProviders + Lists installed test settings providers. + /ListSettingsProviders + Lists installed test settings providers. + + + + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + + + + Time elapsed : + Time elapsed : + + + + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + + + + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + + + + , + , + + + + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + Please verify if the console output looks good after modifiaction. + + + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + + + + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + + + + {0} {1} + {0} {1} + + + + FriendlyName: {0} + FriendlyName: {0} + + + + Uri: {0} + Uri: {0} + + + + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + SettingName: {0} + SettingName: {0} + + + + Supported File Types: + Supported File Types: + + + + {0} + {0} + + + + {0}, + {0}, + + + + Default Executor Uri: {0} + Default Executor Uri: {0} + + + + Uri: {0} + Uri: {0} + + + + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + + + + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + + + + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + + + + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + + + + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + + + + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + + + + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + + + + Could not start test run for unit tests for Windows Store app: {0}. + Could not start test run for unit tests for Windows Store app: {0}. + + + + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + + + + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + + + + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + + + + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + + + + Only one app package (.appx file) can be specified for running tests. + Only one app package (.appx file) can be specified for running tests. + + + + Starting test discovery, please wait... + Starting test discovery, please wait... + + + + Starting test execution, please wait... + Starting test execution, please wait... + + + + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + + + + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + + + + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + + + + Settings file provided do not confirm to required format. + Settings file provided do not confirm to required format. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + + + + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + + + + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + + + + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + + + + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + + + + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + + + + The custom test adapter search path provided was not found, provide a valid path and try again. + The custom test adapter search path provided was not found, provide a valid path and try again. + + + + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + + + + Could not start test run for the tests for Windows Phone app: {0}. + Could not start test run for the tests for Windows Phone app: {0}. + + + + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + + + + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + + + + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + + + + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + + + + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + + + + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + + + + Cannot be null or empty + Cannot be null or empty + + + + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + + + + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + + + + Unable to find the assembly under test. Please make sure that the project is built. + Unable to find the assembly under test. Please make sure that the project is built. + + + + The Path {0} does not exist. + The Path {0} does not exist. + + + + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + + + + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + + + + The given configuration is invalid. + The given configuration is invalid. + + + + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + + + + The BuildBasePath was not found, provide a valid path and try again. + The BuildBasePath was not found, provide a valid path and try again. + + + + The Output path was not found, provide a valid path and try again. + The Output path was not found, provide a valid path and try again. + + + + Additional Information Messages: + Additional Information Messages: + + + + Days + Days + + + + Error Message: + Error Message: + + + + Test execution time: {0:0.0000} {1} + Test execution time: {0:0.0000} {1} + + + + Hours + Hours + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Minutes + Minutes + + + + Seconds + Seconds + + + + Stack Trace: + Stack Trace: + + + + Standard Error Messages: + Standard Error Messages: + + + + Standard Output Messages: + Standard Output Messages: + + + + + + + + + Attachments: + Attachments: + + + + {0} + {0} + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + Failed {0} + Failed {0} + Message which is written to the console when a test fails. + + + Passed {0} + Passed {0} + Message which is written to the console when a test passes. + + + Skipped {0} + Skipped {0} + + + + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + + + + Discovery failed for given sources. Exception : {0} + Discovery failed for given sources. Exception : {0} + + + + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + + + + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + + + + Arguments: + Arguments: + + + + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + + + + The file {0} provided is read only + The file {0} provided is read only + + + + + \ No newline at end of file diff --git a/src/vstest.console/Resources/xlf/Resources.ko.xlf b/src/vstest.console/Resources/xlf/Resources.ko.xlf new file mode 100644 index 0000000000..680876ac03 --- /dev/null +++ b/src/vstest.console/Resources/xlf/Resources.ko.xlf @@ -0,0 +1,846 @@ + + + + + + Duplicate source {0} specified. + Ignoring the specified duplicate source '{0}'. + + + + '{0}' not found. + Could not find file {0}. + + + + The following Test Discovery Add-Ins are available: + The following Test Discovery Add-Ins are available: + + + + The following Test Execution Add-Ins are available: + The following Test Execution Add-Ins are available: + + + + {0} + {0} + {Locked} + + + {0}: {1} + {0}: {1} + + + + The following Test Logger Add-Ins are available: + The following Test Logger Add-Ins are available: + + + + {0} + {0} + {Locked} + + + Error: {0} + Error: {0} + + + + , {0} + , {0} + Format used to comma separate a list of values. + + + The parameter "{0}" should be provided only once. + The parameter "{0}" should be provided only once. + + + + Exception occurred when instantiating extension '{0}': {1} + Exception occurred when instantiating extension '{0}': {1} + + + + The following Tests are available: + The following Tests are available: + + + + Unrecognized parameter "{0}". + Unrecognized parameter "{0}". + + + + The test source file "{0}" provided was not found. + The test source file "{0}" provided was not found. + + + + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + -?|--Help|/?|/Help + Display this usage message. + -?|--Help|/?|/Help + Display this usage message. + + + + Copyright (c) Microsoft Corporation. All rights reserved. + Copyright (c) Microsoft Corporation. All rights reserved. + + + + Microsoft (R) Test Execution Command Line Tool Version {0} + Microsoft (R) Test Execution Command Line Tool Version {0} + + + + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + + + + Description: Runs tests from the specified files. + Description: Runs tests from the specified files. + + + + Options: + Options: + Section Header for subsequent command help listing + + + Usage: vstest.console.exe [Arguments] [Options] + Usage: vstest.console.exe [Arguments] [Options] + + + + No test source files were specified. + No test source files were specified. + + + + No arguments were specified. + No arguments were specified. + + + + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + + + + The following Settings Providers Add-Ins are available: + The following Settings Providers Add-Ins are available: + + + + --Settings|/Settings:<Settings File> + Settings to use when running tests. + --Settings|/Settings:<Settings File> + Settings to use when running tests. + + + + The /Settings parameter requires a settings file to be provided. + The /Settings parameter requires a settings file to be provided. + + + + The Settings file '{0}' could not be found. + The Settings file '{0}' could not be found. + + + + Test Run Failed. + Test Run Failed. + + + + Test Run Successful. + Test Run Successful. + + + + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + + + + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + + + + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + + + + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + + + + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + + + + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + + + + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + + + + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + + + + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + + + + /ListDiscoverers + Lists installed test discoverers. + /ListDiscoverers + Lists installed test discoverers. + + + + /ListExecutors + Lists installed test executors. + /ListExecutors + Lists installed test executors. + + + + /ListLoggers + Lists installed test loggers. + /ListLoggers + Lists installed test loggers. + + + + /ListSettingsProviders + Lists installed test settings providers. + /ListSettingsProviders + Lists installed test settings providers. + + + + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + + + + Time elapsed : + Time elapsed : + + + + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + + + + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + + + + , + , + + + + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + Please verify if the console output looks good after modifiaction. + + + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + + + + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + + + + {0} {1} + {0} {1} + + + + FriendlyName: {0} + FriendlyName: {0} + + + + Uri: {0} + Uri: {0} + + + + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + SettingName: {0} + SettingName: {0} + + + + Supported File Types: + Supported File Types: + + + + {0} + {0} + + + + {0}, + {0}, + + + + Default Executor Uri: {0} + Default Executor Uri: {0} + + + + Uri: {0} + Uri: {0} + + + + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + + + + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + + + + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + + + + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + + + + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + + + + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + + + + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + + + + Could not start test run for unit tests for Windows Store app: {0}. + Could not start test run for unit tests for Windows Store app: {0}. + + + + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + + + + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + + + + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + + + + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + + + + Only one app package (.appx file) can be specified for running tests. + Only one app package (.appx file) can be specified for running tests. + + + + Starting test discovery, please wait... + Starting test discovery, please wait... + + + + Starting test execution, please wait... + Starting test execution, please wait... + + + + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + + + + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + + + + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + + + + Settings file provided do not confirm to required format. + Settings file provided do not confirm to required format. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + + + + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + + + + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + + + + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + + + + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + + + + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + + + + The custom test adapter search path provided was not found, provide a valid path and try again. + The custom test adapter search path provided was not found, provide a valid path and try again. + + + + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + + + + Could not start test run for the tests for Windows Phone app: {0}. + Could not start test run for the tests for Windows Phone app: {0}. + + + + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + + + + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + + + + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + + + + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + + + + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + + + + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + + + + Cannot be null or empty + Cannot be null or empty + + + + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + + + + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + + + + Unable to find the assembly under test. Please make sure that the project is built. + Unable to find the assembly under test. Please make sure that the project is built. + + + + The Path {0} does not exist. + The Path {0} does not exist. + + + + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + + + + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + + + + The given configuration is invalid. + The given configuration is invalid. + + + + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + + + + The BuildBasePath was not found, provide a valid path and try again. + The BuildBasePath was not found, provide a valid path and try again. + + + + The Output path was not found, provide a valid path and try again. + The Output path was not found, provide a valid path and try again. + + + + Additional Information Messages: + Additional Information Messages: + + + + Days + Days + + + + Error Message: + Error Message: + + + + Test execution time: {0:0.0000} {1} + Test execution time: {0:0.0000} {1} + + + + Hours + Hours + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Minutes + Minutes + + + + Seconds + Seconds + + + + Stack Trace: + Stack Trace: + + + + Standard Error Messages: + Standard Error Messages: + + + + Standard Output Messages: + Standard Output Messages: + + + + + + + + + Attachments: + Attachments: + + + + {0} + {0} + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + Failed {0} + Failed {0} + Message which is written to the console when a test fails. + + + Passed {0} + Passed {0} + Message which is written to the console when a test passes. + + + Skipped {0} + Skipped {0} + + + + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + + + + Discovery failed for given sources. Exception : {0} + Discovery failed for given sources. Exception : {0} + + + + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + + + + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + + + + Arguments: + Arguments: + + + + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + + + + The file {0} provided is read only + The file {0} provided is read only + + + + + \ No newline at end of file diff --git a/src/vstest.console/Resources/xlf/Resources.pl.xlf b/src/vstest.console/Resources/xlf/Resources.pl.xlf new file mode 100644 index 0000000000..1ea6bd94f2 --- /dev/null +++ b/src/vstest.console/Resources/xlf/Resources.pl.xlf @@ -0,0 +1,846 @@ + + + + + + Duplicate source {0} specified. + Ignoring the specified duplicate source '{0}'. + + + + '{0}' not found. + Could not find file {0}. + + + + The following Test Discovery Add-Ins are available: + The following Test Discovery Add-Ins are available: + + + + The following Test Execution Add-Ins are available: + The following Test Execution Add-Ins are available: + + + + {0} + {0} + {Locked} + + + {0}: {1} + {0}: {1} + + + + The following Test Logger Add-Ins are available: + The following Test Logger Add-Ins are available: + + + + {0} + {0} + {Locked} + + + Error: {0} + Error: {0} + + + + , {0} + , {0} + Format used to comma separate a list of values. + + + The parameter "{0}" should be provided only once. + The parameter "{0}" should be provided only once. + + + + Exception occurred when instantiating extension '{0}': {1} + Exception occurred when instantiating extension '{0}': {1} + + + + The following Tests are available: + The following Tests are available: + + + + Unrecognized parameter "{0}". + Unrecognized parameter "{0}". + + + + The test source file "{0}" provided was not found. + The test source file "{0}" provided was not found. + + + + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + -?|--Help|/?|/Help + Display this usage message. + -?|--Help|/?|/Help + Display this usage message. + + + + Copyright (c) Microsoft Corporation. All rights reserved. + Copyright (c) Microsoft Corporation. All rights reserved. + + + + Microsoft (R) Test Execution Command Line Tool Version {0} + Microsoft (R) Test Execution Command Line Tool Version {0} + + + + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + + + + Description: Runs tests from the specified files. + Description: Runs tests from the specified files. + + + + Options: + Options: + Section Header for subsequent command help listing + + + Usage: vstest.console.exe [Arguments] [Options] + Usage: vstest.console.exe [Arguments] [Options] + + + + No test source files were specified. + No test source files were specified. + + + + No arguments were specified. + No arguments were specified. + + + + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + + + + The following Settings Providers Add-Ins are available: + The following Settings Providers Add-Ins are available: + + + + --Settings|/Settings:<Settings File> + Settings to use when running tests. + --Settings|/Settings:<Settings File> + Settings to use when running tests. + + + + The /Settings parameter requires a settings file to be provided. + The /Settings parameter requires a settings file to be provided. + + + + The Settings file '{0}' could not be found. + The Settings file '{0}' could not be found. + + + + Test Run Failed. + Test Run Failed. + + + + Test Run Successful. + Test Run Successful. + + + + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + + + + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + + + + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + + + + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + + + + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + + + + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + + + + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + + + + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + + + + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + + + + /ListDiscoverers + Lists installed test discoverers. + /ListDiscoverers + Lists installed test discoverers. + + + + /ListExecutors + Lists installed test executors. + /ListExecutors + Lists installed test executors. + + + + /ListLoggers + Lists installed test loggers. + /ListLoggers + Lists installed test loggers. + + + + /ListSettingsProviders + Lists installed test settings providers. + /ListSettingsProviders + Lists installed test settings providers. + + + + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + + + + Time elapsed : + Time elapsed : + + + + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + + + + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + + + + , + , + + + + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + Please verify if the console output looks good after modifiaction. + + + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + + + + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + + + + {0} {1} + {0} {1} + + + + FriendlyName: {0} + FriendlyName: {0} + + + + Uri: {0} + Uri: {0} + + + + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + SettingName: {0} + SettingName: {0} + + + + Supported File Types: + Supported File Types: + + + + {0} + {0} + + + + {0}, + {0}, + + + + Default Executor Uri: {0} + Default Executor Uri: {0} + + + + Uri: {0} + Uri: {0} + + + + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + + + + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + + + + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + + + + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + + + + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + + + + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + + + + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + + + + Could not start test run for unit tests for Windows Store app: {0}. + Could not start test run for unit tests for Windows Store app: {0}. + + + + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + + + + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + + + + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + + + + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + + + + Only one app package (.appx file) can be specified for running tests. + Only one app package (.appx file) can be specified for running tests. + + + + Starting test discovery, please wait... + Starting test discovery, please wait... + + + + Starting test execution, please wait... + Starting test execution, please wait... + + + + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + + + + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + + + + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + + + + Settings file provided do not confirm to required format. + Settings file provided do not confirm to required format. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + + + + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + + + + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + + + + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + + + + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + + + + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + + + + The custom test adapter search path provided was not found, provide a valid path and try again. + The custom test adapter search path provided was not found, provide a valid path and try again. + + + + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + + + + Could not start test run for the tests for Windows Phone app: {0}. + Could not start test run for the tests for Windows Phone app: {0}. + + + + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + + + + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + + + + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + + + + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + + + + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + + + + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + + + + Cannot be null or empty + Cannot be null or empty + + + + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + + + + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + + + + Unable to find the assembly under test. Please make sure that the project is built. + Unable to find the assembly under test. Please make sure that the project is built. + + + + The Path {0} does not exist. + The Path {0} does not exist. + + + + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + + + + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + + + + The given configuration is invalid. + The given configuration is invalid. + + + + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + + + + The BuildBasePath was not found, provide a valid path and try again. + The BuildBasePath was not found, provide a valid path and try again. + + + + The Output path was not found, provide a valid path and try again. + The Output path was not found, provide a valid path and try again. + + + + Additional Information Messages: + Additional Information Messages: + + + + Days + Days + + + + Error Message: + Error Message: + + + + Test execution time: {0:0.0000} {1} + Test execution time: {0:0.0000} {1} + + + + Hours + Hours + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Minutes + Minutes + + + + Seconds + Seconds + + + + Stack Trace: + Stack Trace: + + + + Standard Error Messages: + Standard Error Messages: + + + + Standard Output Messages: + Standard Output Messages: + + + + + + + + + Attachments: + Attachments: + + + + {0} + {0} + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + Failed {0} + Failed {0} + Message which is written to the console when a test fails. + + + Passed {0} + Passed {0} + Message which is written to the console when a test passes. + + + Skipped {0} + Skipped {0} + + + + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + + + + Discovery failed for given sources. Exception : {0} + Discovery failed for given sources. Exception : {0} + + + + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + + + + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + + + + Arguments: + Arguments: + + + + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + + + + The file {0} provided is read only + The file {0} provided is read only + + + + + \ No newline at end of file diff --git a/src/vstest.console/Resources/xlf/Resources.pt-BR.xlf b/src/vstest.console/Resources/xlf/Resources.pt-BR.xlf new file mode 100644 index 0000000000..c98a099cbd --- /dev/null +++ b/src/vstest.console/Resources/xlf/Resources.pt-BR.xlf @@ -0,0 +1,846 @@ + + + + + + Duplicate source {0} specified. + Ignoring the specified duplicate source '{0}'. + + + + '{0}' not found. + Could not find file {0}. + + + + The following Test Discovery Add-Ins are available: + The following Test Discovery Add-Ins are available: + + + + The following Test Execution Add-Ins are available: + The following Test Execution Add-Ins are available: + + + + {0} + {0} + {Locked} + + + {0}: {1} + {0}: {1} + + + + The following Test Logger Add-Ins are available: + The following Test Logger Add-Ins are available: + + + + {0} + {0} + {Locked} + + + Error: {0} + Error: {0} + + + + , {0} + , {0} + Format used to comma separate a list of values. + + + The parameter "{0}" should be provided only once. + The parameter "{0}" should be provided only once. + + + + Exception occurred when instantiating extension '{0}': {1} + Exception occurred when instantiating extension '{0}': {1} + + + + The following Tests are available: + The following Tests are available: + + + + Unrecognized parameter "{0}". + Unrecognized parameter "{0}". + + + + The test source file "{0}" provided was not found. + The test source file "{0}" provided was not found. + + + + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + -?|--Help|/?|/Help + Display this usage message. + -?|--Help|/?|/Help + Display this usage message. + + + + Copyright (c) Microsoft Corporation. All rights reserved. + Copyright (c) Microsoft Corporation. All rights reserved. + + + + Microsoft (R) Test Execution Command Line Tool Version {0} + Microsoft (R) Test Execution Command Line Tool Version {0} + + + + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + + + + Description: Runs tests from the specified files. + Description: Runs tests from the specified files. + + + + Options: + Options: + Section Header for subsequent command help listing + + + Usage: vstest.console.exe [Arguments] [Options] + Usage: vstest.console.exe [Arguments] [Options] + + + + No test source files were specified. + No test source files were specified. + + + + No arguments were specified. + No arguments were specified. + + + + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + + + + The following Settings Providers Add-Ins are available: + The following Settings Providers Add-Ins are available: + + + + --Settings|/Settings:<Settings File> + Settings to use when running tests. + --Settings|/Settings:<Settings File> + Settings to use when running tests. + + + + The /Settings parameter requires a settings file to be provided. + The /Settings parameter requires a settings file to be provided. + + + + The Settings file '{0}' could not be found. + The Settings file '{0}' could not be found. + + + + Test Run Failed. + Test Run Failed. + + + + Test Run Successful. + Test Run Successful. + + + + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + + + + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + + + + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + + + + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + + + + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + + + + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + + + + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + + + + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + + + + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + + + + /ListDiscoverers + Lists installed test discoverers. + /ListDiscoverers + Lists installed test discoverers. + + + + /ListExecutors + Lists installed test executors. + /ListExecutors + Lists installed test executors. + + + + /ListLoggers + Lists installed test loggers. + /ListLoggers + Lists installed test loggers. + + + + /ListSettingsProviders + Lists installed test settings providers. + /ListSettingsProviders + Lists installed test settings providers. + + + + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + + + + Time elapsed : + Time elapsed : + + + + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + + + + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + + + + , + , + + + + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + Please verify if the console output looks good after modifiaction. + + + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + + + + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + + + + {0} {1} + {0} {1} + + + + FriendlyName: {0} + FriendlyName: {0} + + + + Uri: {0} + Uri: {0} + + + + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + SettingName: {0} + SettingName: {0} + + + + Supported File Types: + Supported File Types: + + + + {0} + {0} + + + + {0}, + {0}, + + + + Default Executor Uri: {0} + Default Executor Uri: {0} + + + + Uri: {0} + Uri: {0} + + + + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + + + + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + + + + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + + + + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + + + + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + + + + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + + + + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + + + + Could not start test run for unit tests for Windows Store app: {0}. + Could not start test run for unit tests for Windows Store app: {0}. + + + + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + + + + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + + + + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + + + + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + + + + Only one app package (.appx file) can be specified for running tests. + Only one app package (.appx file) can be specified for running tests. + + + + Starting test discovery, please wait... + Starting test discovery, please wait... + + + + Starting test execution, please wait... + Starting test execution, please wait... + + + + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + + + + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + + + + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + + + + Settings file provided do not confirm to required format. + Settings file provided do not confirm to required format. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + + + + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + + + + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + + + + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + + + + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + + + + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + + + + The custom test adapter search path provided was not found, provide a valid path and try again. + The custom test adapter search path provided was not found, provide a valid path and try again. + + + + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + + + + Could not start test run for the tests for Windows Phone app: {0}. + Could not start test run for the tests for Windows Phone app: {0}. + + + + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + + + + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + + + + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + + + + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + + + + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + + + + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + + + + Cannot be null or empty + Cannot be null or empty + + + + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + + + + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + + + + Unable to find the assembly under test. Please make sure that the project is built. + Unable to find the assembly under test. Please make sure that the project is built. + + + + The Path {0} does not exist. + The Path {0} does not exist. + + + + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + + + + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + + + + The given configuration is invalid. + The given configuration is invalid. + + + + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + + + + The BuildBasePath was not found, provide a valid path and try again. + The BuildBasePath was not found, provide a valid path and try again. + + + + The Output path was not found, provide a valid path and try again. + The Output path was not found, provide a valid path and try again. + + + + Additional Information Messages: + Additional Information Messages: + + + + Days + Days + + + + Error Message: + Error Message: + + + + Test execution time: {0:0.0000} {1} + Test execution time: {0:0.0000} {1} + + + + Hours + Hours + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Minutes + Minutes + + + + Seconds + Seconds + + + + Stack Trace: + Stack Trace: + + + + Standard Error Messages: + Standard Error Messages: + + + + Standard Output Messages: + Standard Output Messages: + + + + + + + + + Attachments: + Attachments: + + + + {0} + {0} + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + Failed {0} + Failed {0} + Message which is written to the console when a test fails. + + + Passed {0} + Passed {0} + Message which is written to the console when a test passes. + + + Skipped {0} + Skipped {0} + + + + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + + + + Discovery failed for given sources. Exception : {0} + Discovery failed for given sources. Exception : {0} + + + + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + + + + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + + + + Arguments: + Arguments: + + + + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + + + + The file {0} provided is read only + The file {0} provided is read only + + + + + \ No newline at end of file diff --git a/src/vstest.console/Resources/xlf/Resources.ru.xlf b/src/vstest.console/Resources/xlf/Resources.ru.xlf new file mode 100644 index 0000000000..470cad86dc --- /dev/null +++ b/src/vstest.console/Resources/xlf/Resources.ru.xlf @@ -0,0 +1,846 @@ + + + + + + Duplicate source {0} specified. + Ignoring the specified duplicate source '{0}'. + + + + '{0}' not found. + Could not find file {0}. + + + + The following Test Discovery Add-Ins are available: + The following Test Discovery Add-Ins are available: + + + + The following Test Execution Add-Ins are available: + The following Test Execution Add-Ins are available: + + + + {0} + {0} + {Locked} + + + {0}: {1} + {0}: {1} + + + + The following Test Logger Add-Ins are available: + The following Test Logger Add-Ins are available: + + + + {0} + {0} + {Locked} + + + Error: {0} + Error: {0} + + + + , {0} + , {0} + Format used to comma separate a list of values. + + + The parameter "{0}" should be provided only once. + The parameter "{0}" should be provided only once. + + + + Exception occurred when instantiating extension '{0}': {1} + Exception occurred when instantiating extension '{0}': {1} + + + + The following Tests are available: + The following Tests are available: + + + + Unrecognized parameter "{0}". + Unrecognized parameter "{0}". + + + + The test source file "{0}" provided was not found. + The test source file "{0}" provided was not found. + + + + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + -?|--Help|/?|/Help + Display this usage message. + -?|--Help|/?|/Help + Display this usage message. + + + + Copyright (c) Microsoft Corporation. All rights reserved. + Copyright (c) Microsoft Corporation. All rights reserved. + + + + Microsoft (R) Test Execution Command Line Tool Version {0} + Microsoft (R) Test Execution Command Line Tool Version {0} + + + + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + + + + Description: Runs tests from the specified files. + Description: Runs tests from the specified files. + + + + Options: + Options: + Section Header for subsequent command help listing + + + Usage: vstest.console.exe [Arguments] [Options] + Usage: vstest.console.exe [Arguments] [Options] + + + + No test source files were specified. + No test source files were specified. + + + + No arguments were specified. + No arguments were specified. + + + + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + + + + The following Settings Providers Add-Ins are available: + The following Settings Providers Add-Ins are available: + + + + --Settings|/Settings:<Settings File> + Settings to use when running tests. + --Settings|/Settings:<Settings File> + Settings to use when running tests. + + + + The /Settings parameter requires a settings file to be provided. + The /Settings parameter requires a settings file to be provided. + + + + The Settings file '{0}' could not be found. + The Settings file '{0}' could not be found. + + + + Test Run Failed. + Test Run Failed. + + + + Test Run Successful. + Test Run Successful. + + + + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + + + + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + + + + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + + + + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + + + + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + + + + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + + + + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + + + + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + + + + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + + + + /ListDiscoverers + Lists installed test discoverers. + /ListDiscoverers + Lists installed test discoverers. + + + + /ListExecutors + Lists installed test executors. + /ListExecutors + Lists installed test executors. + + + + /ListLoggers + Lists installed test loggers. + /ListLoggers + Lists installed test loggers. + + + + /ListSettingsProviders + Lists installed test settings providers. + /ListSettingsProviders + Lists installed test settings providers. + + + + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + + + + Time elapsed : + Time elapsed : + + + + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + + + + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + + + + , + , + + + + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + Please verify if the console output looks good after modifiaction. + + + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + + + + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + + + + {0} {1} + {0} {1} + + + + FriendlyName: {0} + FriendlyName: {0} + + + + Uri: {0} + Uri: {0} + + + + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + SettingName: {0} + SettingName: {0} + + + + Supported File Types: + Supported File Types: + + + + {0} + {0} + + + + {0}, + {0}, + + + + Default Executor Uri: {0} + Default Executor Uri: {0} + + + + Uri: {0} + Uri: {0} + + + + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + + + + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + + + + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + + + + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + + + + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + + + + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + + + + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + + + + Could not start test run for unit tests for Windows Store app: {0}. + Could not start test run for unit tests for Windows Store app: {0}. + + + + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + + + + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + + + + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + + + + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + + + + Only one app package (.appx file) can be specified for running tests. + Only one app package (.appx file) can be specified for running tests. + + + + Starting test discovery, please wait... + Starting test discovery, please wait... + + + + Starting test execution, please wait... + Starting test execution, please wait... + + + + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + + + + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + + + + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + + + + Settings file provided do not confirm to required format. + Settings file provided do not confirm to required format. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + + + + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + + + + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + + + + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + + + + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + + + + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + + + + The custom test adapter search path provided was not found, provide a valid path and try again. + The custom test adapter search path provided was not found, provide a valid path and try again. + + + + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + + + + Could not start test run for the tests for Windows Phone app: {0}. + Could not start test run for the tests for Windows Phone app: {0}. + + + + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + + + + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + + + + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + + + + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + + + + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + + + + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + + + + Cannot be null or empty + Cannot be null or empty + + + + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + + + + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + + + + Unable to find the assembly under test. Please make sure that the project is built. + Unable to find the assembly under test. Please make sure that the project is built. + + + + The Path {0} does not exist. + The Path {0} does not exist. + + + + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + + + + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + + + + The given configuration is invalid. + The given configuration is invalid. + + + + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + + + + The BuildBasePath was not found, provide a valid path and try again. + The BuildBasePath was not found, provide a valid path and try again. + + + + The Output path was not found, provide a valid path and try again. + The Output path was not found, provide a valid path and try again. + + + + Additional Information Messages: + Additional Information Messages: + + + + Days + Days + + + + Error Message: + Error Message: + + + + Test execution time: {0:0.0000} {1} + Test execution time: {0:0.0000} {1} + + + + Hours + Hours + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Minutes + Minutes + + + + Seconds + Seconds + + + + Stack Trace: + Stack Trace: + + + + Standard Error Messages: + Standard Error Messages: + + + + Standard Output Messages: + Standard Output Messages: + + + + + + + + + Attachments: + Attachments: + + + + {0} + {0} + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + Failed {0} + Failed {0} + Message which is written to the console when a test fails. + + + Passed {0} + Passed {0} + Message which is written to the console when a test passes. + + + Skipped {0} + Skipped {0} + + + + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + + + + Discovery failed for given sources. Exception : {0} + Discovery failed for given sources. Exception : {0} + + + + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + + + + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + + + + Arguments: + Arguments: + + + + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + + + + The file {0} provided is read only + The file {0} provided is read only + + + + + \ No newline at end of file diff --git a/src/vstest.console/Resources/xlf/Resources.tr.xlf b/src/vstest.console/Resources/xlf/Resources.tr.xlf new file mode 100644 index 0000000000..201a5900ca --- /dev/null +++ b/src/vstest.console/Resources/xlf/Resources.tr.xlf @@ -0,0 +1,846 @@ + + + + + + Duplicate source {0} specified. + Ignoring the specified duplicate source '{0}'. + + + + '{0}' not found. + Could not find file {0}. + + + + The following Test Discovery Add-Ins are available: + The following Test Discovery Add-Ins are available: + + + + The following Test Execution Add-Ins are available: + The following Test Execution Add-Ins are available: + + + + {0} + {0} + {Locked} + + + {0}: {1} + {0}: {1} + + + + The following Test Logger Add-Ins are available: + The following Test Logger Add-Ins are available: + + + + {0} + {0} + {Locked} + + + Error: {0} + Error: {0} + + + + , {0} + , {0} + Format used to comma separate a list of values. + + + The parameter "{0}" should be provided only once. + The parameter "{0}" should be provided only once. + + + + Exception occurred when instantiating extension '{0}': {1} + Exception occurred when instantiating extension '{0}': {1} + + + + The following Tests are available: + The following Tests are available: + + + + Unrecognized parameter "{0}". + Unrecognized parameter "{0}". + + + + The test source file "{0}" provided was not found. + The test source file "{0}" provided was not found. + + + + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + -?|--Help|/?|/Help + Display this usage message. + -?|--Help|/?|/Help + Display this usage message. + + + + Copyright (c) Microsoft Corporation. All rights reserved. + Copyright (c) Microsoft Corporation. All rights reserved. + + + + Microsoft (R) Test Execution Command Line Tool Version {0} + Microsoft (R) Test Execution Command Line Tool Version {0} + + + + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + + + + Description: Runs tests from the specified files. + Description: Runs tests from the specified files. + + + + Options: + Options: + Section Header for subsequent command help listing + + + Usage: vstest.console.exe [Arguments] [Options] + Usage: vstest.console.exe [Arguments] [Options] + + + + No test source files were specified. + No test source files were specified. + + + + No arguments were specified. + No arguments were specified. + + + + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + + + + The following Settings Providers Add-Ins are available: + The following Settings Providers Add-Ins are available: + + + + --Settings|/Settings:<Settings File> + Settings to use when running tests. + --Settings|/Settings:<Settings File> + Settings to use when running tests. + + + + The /Settings parameter requires a settings file to be provided. + The /Settings parameter requires a settings file to be provided. + + + + The Settings file '{0}' could not be found. + The Settings file '{0}' could not be found. + + + + Test Run Failed. + Test Run Failed. + + + + Test Run Successful. + Test Run Successful. + + + + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + + + + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + + + + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + + + + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + + + + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + + + + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + + + + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + + + + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + + + + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + + + + /ListDiscoverers + Lists installed test discoverers. + /ListDiscoverers + Lists installed test discoverers. + + + + /ListExecutors + Lists installed test executors. + /ListExecutors + Lists installed test executors. + + + + /ListLoggers + Lists installed test loggers. + /ListLoggers + Lists installed test loggers. + + + + /ListSettingsProviders + Lists installed test settings providers. + /ListSettingsProviders + Lists installed test settings providers. + + + + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + + + + Time elapsed : + Time elapsed : + + + + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + + + + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + + + + , + , + + + + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + Please verify if the console output looks good after modifiaction. + + + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + + + + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + + + + {0} {1} + {0} {1} + + + + FriendlyName: {0} + FriendlyName: {0} + + + + Uri: {0} + Uri: {0} + + + + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + SettingName: {0} + SettingName: {0} + + + + Supported File Types: + Supported File Types: + + + + {0} + {0} + + + + {0}, + {0}, + + + + Default Executor Uri: {0} + Default Executor Uri: {0} + + + + Uri: {0} + Uri: {0} + + + + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + + + + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + + + + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + + + + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + + + + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + + + + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + + + + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + + + + Could not start test run for unit tests for Windows Store app: {0}. + Could not start test run for unit tests for Windows Store app: {0}. + + + + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + + + + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + + + + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + + + + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + + + + Only one app package (.appx file) can be specified for running tests. + Only one app package (.appx file) can be specified for running tests. + + + + Starting test discovery, please wait... + Starting test discovery, please wait... + + + + Starting test execution, please wait... + Starting test execution, please wait... + + + + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + + + + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + + + + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + + + + Settings file provided do not confirm to required format. + Settings file provided do not confirm to required format. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + + + + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + + + + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + + + + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + + + + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + + + + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + + + + The custom test adapter search path provided was not found, provide a valid path and try again. + The custom test adapter search path provided was not found, provide a valid path and try again. + + + + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + + + + Could not start test run for the tests for Windows Phone app: {0}. + Could not start test run for the tests for Windows Phone app: {0}. + + + + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + + + + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + + + + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + + + + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + + + + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + + + + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + + + + Cannot be null or empty + Cannot be null or empty + + + + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + + + + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + + + + Unable to find the assembly under test. Please make sure that the project is built. + Unable to find the assembly under test. Please make sure that the project is built. + + + + The Path {0} does not exist. + The Path {0} does not exist. + + + + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + + + + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + + + + The given configuration is invalid. + The given configuration is invalid. + + + + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + + + + The BuildBasePath was not found, provide a valid path and try again. + The BuildBasePath was not found, provide a valid path and try again. + + + + The Output path was not found, provide a valid path and try again. + The Output path was not found, provide a valid path and try again. + + + + Additional Information Messages: + Additional Information Messages: + + + + Days + Days + + + + Error Message: + Error Message: + + + + Test execution time: {0:0.0000} {1} + Test execution time: {0:0.0000} {1} + + + + Hours + Hours + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Minutes + Minutes + + + + Seconds + Seconds + + + + Stack Trace: + Stack Trace: + + + + Standard Error Messages: + Standard Error Messages: + + + + Standard Output Messages: + Standard Output Messages: + + + + + + + + + Attachments: + Attachments: + + + + {0} + {0} + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + Failed {0} + Failed {0} + Message which is written to the console when a test fails. + + + Passed {0} + Passed {0} + Message which is written to the console when a test passes. + + + Skipped {0} + Skipped {0} + + + + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + + + + Discovery failed for given sources. Exception : {0} + Discovery failed for given sources. Exception : {0} + + + + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + + + + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + + + + Arguments: + Arguments: + + + + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + + + + The file {0} provided is read only + The file {0} provided is read only + + + + + \ No newline at end of file diff --git a/src/vstest.console/Resources/xlf/Resources.zh-Hans.xlf b/src/vstest.console/Resources/xlf/Resources.zh-Hans.xlf new file mode 100644 index 0000000000..7f3a52e218 --- /dev/null +++ b/src/vstest.console/Resources/xlf/Resources.zh-Hans.xlf @@ -0,0 +1,846 @@ + + + + + + Duplicate source {0} specified. + Ignoring the specified duplicate source '{0}'. + + + + '{0}' not found. + Could not find file {0}. + + + + The following Test Discovery Add-Ins are available: + The following Test Discovery Add-Ins are available: + + + + The following Test Execution Add-Ins are available: + The following Test Execution Add-Ins are available: + + + + {0} + {0} + {Locked} + + + {0}: {1} + {0}: {1} + + + + The following Test Logger Add-Ins are available: + The following Test Logger Add-Ins are available: + + + + {0} + {0} + {Locked} + + + Error: {0} + Error: {0} + + + + , {0} + , {0} + Format used to comma separate a list of values. + + + The parameter "{0}" should be provided only once. + The parameter "{0}" should be provided only once. + + + + Exception occurred when instantiating extension '{0}': {1} + Exception occurred when instantiating extension '{0}': {1} + + + + The following Tests are available: + The following Tests are available: + + + + Unrecognized parameter "{0}". + Unrecognized parameter "{0}". + + + + The test source file "{0}" provided was not found. + The test source file "{0}" provided was not found. + + + + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + -?|--Help|/?|/Help + Display this usage message. + -?|--Help|/?|/Help + Display this usage message. + + + + Copyright (c) Microsoft Corporation. All rights reserved. + Copyright (c) Microsoft Corporation. All rights reserved. + + + + Microsoft (R) Test Execution Command Line Tool Version {0} + Microsoft (R) Test Execution Command Line Tool Version {0} + + + + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + + + + Description: Runs tests from the specified files. + Description: Runs tests from the specified files. + + + + Options: + Options: + Section Header for subsequent command help listing + + + Usage: vstest.console.exe [Arguments] [Options] + Usage: vstest.console.exe [Arguments] [Options] + + + + No test source files were specified. + No test source files were specified. + + + + No arguments were specified. + No arguments were specified. + + + + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + + + + The following Settings Providers Add-Ins are available: + The following Settings Providers Add-Ins are available: + + + + --Settings|/Settings:<Settings File> + Settings to use when running tests. + --Settings|/Settings:<Settings File> + Settings to use when running tests. + + + + The /Settings parameter requires a settings file to be provided. + The /Settings parameter requires a settings file to be provided. + + + + The Settings file '{0}' could not be found. + The Settings file '{0}' could not be found. + + + + Test Run Failed. + Test Run Failed. + + + + Test Run Successful. + Test Run Successful. + + + + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + + + + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + + + + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + + + + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + + + + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + + + + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + + + + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + + + + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + + + + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + + + + /ListDiscoverers + Lists installed test discoverers. + /ListDiscoverers + Lists installed test discoverers. + + + + /ListExecutors + Lists installed test executors. + /ListExecutors + Lists installed test executors. + + + + /ListLoggers + Lists installed test loggers. + /ListLoggers + Lists installed test loggers. + + + + /ListSettingsProviders + Lists installed test settings providers. + /ListSettingsProviders + Lists installed test settings providers. + + + + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + + + + Time elapsed : + Time elapsed : + + + + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + + + + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + + + + , + , + + + + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + Please verify if the console output looks good after modifiaction. + + + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + + + + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + + + + {0} {1} + {0} {1} + + + + FriendlyName: {0} + FriendlyName: {0} + + + + Uri: {0} + Uri: {0} + + + + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + SettingName: {0} + SettingName: {0} + + + + Supported File Types: + Supported File Types: + + + + {0} + {0} + + + + {0}, + {0}, + + + + Default Executor Uri: {0} + Default Executor Uri: {0} + + + + Uri: {0} + Uri: {0} + + + + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + + + + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + + + + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + + + + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + + + + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + + + + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + + + + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + + + + Could not start test run for unit tests for Windows Store app: {0}. + Could not start test run for unit tests for Windows Store app: {0}. + + + + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + + + + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + + + + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + + + + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + + + + Only one app package (.appx file) can be specified for running tests. + Only one app package (.appx file) can be specified for running tests. + + + + Starting test discovery, please wait... + Starting test discovery, please wait... + + + + Starting test execution, please wait... + Starting test execution, please wait... + + + + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + + + + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + + + + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + + + + Settings file provided do not confirm to required format. + Settings file provided do not confirm to required format. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + + + + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + + + + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + + + + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + + + + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + + + + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + + + + The custom test adapter search path provided was not found, provide a valid path and try again. + The custom test adapter search path provided was not found, provide a valid path and try again. + + + + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + + + + Could not start test run for the tests for Windows Phone app: {0}. + Could not start test run for the tests for Windows Phone app: {0}. + + + + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + + + + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + + + + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + + + + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + + + + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + + + + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + + + + Cannot be null or empty + Cannot be null or empty + + + + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + + + + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + + + + Unable to find the assembly under test. Please make sure that the project is built. + Unable to find the assembly under test. Please make sure that the project is built. + + + + The Path {0} does not exist. + The Path {0} does not exist. + + + + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + + + + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + + + + The given configuration is invalid. + The given configuration is invalid. + + + + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + + + + The BuildBasePath was not found, provide a valid path and try again. + The BuildBasePath was not found, provide a valid path and try again. + + + + The Output path was not found, provide a valid path and try again. + The Output path was not found, provide a valid path and try again. + + + + Additional Information Messages: + Additional Information Messages: + + + + Days + Days + + + + Error Message: + Error Message: + + + + Test execution time: {0:0.0000} {1} + Test execution time: {0:0.0000} {1} + + + + Hours + Hours + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Minutes + Minutes + + + + Seconds + Seconds + + + + Stack Trace: + Stack Trace: + + + + Standard Error Messages: + Standard Error Messages: + + + + Standard Output Messages: + Standard Output Messages: + + + + + + + + + Attachments: + Attachments: + + + + {0} + {0} + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + Failed {0} + Failed {0} + Message which is written to the console when a test fails. + + + Passed {0} + Passed {0} + Message which is written to the console when a test passes. + + + Skipped {0} + Skipped {0} + + + + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + + + + Discovery failed for given sources. Exception : {0} + Discovery failed for given sources. Exception : {0} + + + + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + + + + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + + + + Arguments: + Arguments: + + + + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + + + + The file {0} provided is read only + The file {0} provided is read only + + + + + \ No newline at end of file diff --git a/src/vstest.console/Resources/xlf/Resources.zh-Hant.xlf b/src/vstest.console/Resources/xlf/Resources.zh-Hant.xlf new file mode 100644 index 0000000000..580570b8b7 --- /dev/null +++ b/src/vstest.console/Resources/xlf/Resources.zh-Hant.xlf @@ -0,0 +1,846 @@ + + + + + + Duplicate source {0} specified. + Ignoring the specified duplicate source '{0}'. + + + + '{0}' not found. + Could not find file {0}. + + + + The following Test Discovery Add-Ins are available: + The following Test Discovery Add-Ins are available: + + + + The following Test Execution Add-Ins are available: + The following Test Execution Add-Ins are available: + + + + {0} + {0} + {Locked} + + + {0}: {1} + {0}: {1} + + + + The following Test Logger Add-Ins are available: + The following Test Logger Add-Ins are available: + + + + {0} + {0} + {Locked} + + + Error: {0} + Error: {0} + + + + , {0} + , {0} + Format used to comma separate a list of values. + + + The parameter "{0}" should be provided only once. + The parameter "{0}" should be provided only once. + + + + Exception occurred when instantiating extension '{0}': {1} + Exception occurred when instantiating extension '{0}': {1} + + + + The following Tests are available: + The following Tests are available: + + + + Unrecognized parameter "{0}". + Unrecognized parameter "{0}". + + + + The test source file "{0}" provided was not found. + The test source file "{0}" provided was not found. + + + + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + + + + Information: {0} + Information: {0} + + + + Warning: {0} + Warning: {0} + + + + -?|--Help|/?|/Help + Display this usage message. + -?|--Help|/?|/Help + Display this usage message. + + + + Copyright (c) Microsoft Corporation. All rights reserved. + Copyright (c) Microsoft Corporation. All rights reserved. + + + + Microsoft (R) Test Execution Command Line Tool Version {0} + Microsoft (R) Test Execution Command Line Tool Version {0} + + + + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + + + + Description: Runs tests from the specified files. + Description: Runs tests from the specified files. + + + + Options: + Options: + Section Header for subsequent command help listing + + + Usage: vstest.console.exe [Arguments] [Options] + Usage: vstest.console.exe [Arguments] [Options] + + + + No test source files were specified. + No test source files were specified. + + + + No arguments were specified. + No arguments were specified. + + + + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + + + + The following Settings Providers Add-Ins are available: + The following Settings Providers Add-Ins are available: + + + + --Settings|/Settings:<Settings File> + Settings to use when running tests. + --Settings|/Settings:<Settings File> + Settings to use when running tests. + + + + The /Settings parameter requires a settings file to be provided. + The /Settings parameter requires a settings file to be provided. + + + + The Settings file '{0}' could not be found. + The Settings file '{0}' could not be found. + + + + Test Run Failed. + Test Run Failed. + + + + Test Run Successful. + Test Run Successful. + + + + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + + + + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + + + + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + + + + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + + + + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + + + + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + + + + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + + + + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + + + + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + + + + /ListDiscoverers + Lists installed test discoverers. + /ListDiscoverers + Lists installed test discoverers. + + + + /ListExecutors + Lists installed test executors. + /ListExecutors + Lists installed test executors. + + + + /ListLoggers + Lists installed test loggers. + /ListLoggers + Lists installed test loggers. + + + + /ListSettingsProviders + Lists installed test settings providers. + /ListSettingsProviders + Lists installed test settings providers. + + + + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + + + + Time elapsed : + Time elapsed : + + + + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + + + + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + + + + , + , + + + + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + Please verify if the console output looks good after modifiaction. + + + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + + + + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + + + + {0} {1} + {0} {1} + + + + FriendlyName: {0} + FriendlyName: {0} + + + + Uri: {0} + Uri: {0} + + + + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + SettingName: {0} + SettingName: {0} + + + + Supported File Types: + Supported File Types: + + + + {0} + {0} + + + + {0}, + {0}, + + + + Default Executor Uri: {0} + Default Executor Uri: {0} + + + + Uri: {0} + Uri: {0} + + + + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + + + + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + + + + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + + + + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + + + + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + + + + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + + + + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + + + + Could not start test run for unit tests for Windows Store app: {0}. + Could not start test run for unit tests for Windows Store app: {0}. + + + + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + + + + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + + + + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + + + + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + + + + Only one app package (.appx file) can be specified for running tests. + Only one app package (.appx file) can be specified for running tests. + + + + Starting test discovery, please wait... + Starting test discovery, please wait... + + + + Starting test execution, please wait... + Starting test execution, please wait... + + + + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + + + + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + + + + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + + + + Settings file provided do not confirm to required format. + Settings file provided do not confirm to required format. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + + + + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + + + + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + + + + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + + + + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + + + + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + + + + The custom test adapter search path provided was not found, provide a valid path and try again. + The custom test adapter search path provided was not found, provide a valid path and try again. + + + + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + + + + Could not start test run for the tests for Windows Phone app: {0}. + Could not start test run for the tests for Windows Phone app: {0}. + + + + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + + + + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + + + + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + + + + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + + + + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + + + + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + + + + Cannot be null or empty + Cannot be null or empty + + + + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + + + + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + + + + Unable to find the assembly under test. Please make sure that the project is built. + Unable to find the assembly under test. Please make sure that the project is built. + + + + The Path {0} does not exist. + The Path {0} does not exist. + + + + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + + + + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + + + + The given configuration is invalid. + The given configuration is invalid. + + + + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + + + + The BuildBasePath was not found, provide a valid path and try again. + The BuildBasePath was not found, provide a valid path and try again. + + + + The Output path was not found, provide a valid path and try again. + The Output path was not found, provide a valid path and try again. + + + + Additional Information Messages: + Additional Information Messages: + + + + Days + Days + + + + Error Message: + Error Message: + + + + Test execution time: {0:0.0000} {1} + Test execution time: {0:0.0000} {1} + + + + Hours + Hours + + + + Could not find a test logger with URI or FriendlyName '{0}'. + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Minutes + Minutes + + + + Seconds + Seconds + + + + Stack Trace: + Stack Trace: + + + + Standard Error Messages: + Standard Error Messages: + + + + Standard Output Messages: + Standard Output Messages: + + + + + + + + + Attachments: + Attachments: + + + + {0} + {0} + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + Failed {0} + Failed {0} + Message which is written to the console when a test fails. + + + Passed {0} + Passed {0} + Message which is written to the console when a test passes. + + + Skipped {0} + Skipped {0} + + + + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + + + + Discovery failed for given sources. Exception : {0} + Discovery failed for given sources. Exception : {0} + + + + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + + + + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + + + + Arguments: + Arguments: + + + + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + + + + The file {0} provided is read only + The file {0} provided is read only + + + + + \ No newline at end of file diff --git a/src/vstest.console/project.json b/src/vstest.console/project.json index 6091bb1b03..cf8e6aed9b 100644 --- a/src/vstest.console/project.json +++ b/src/vstest.console/project.json @@ -5,7 +5,8 @@ "emitEntryPoint": true, "delaySign": true, "keyFile": "../../scripts/key.snk", - "warningsAsErrors": true + "warningsAsErrors": true, + "embed": [ "Resources/*.resx" ] }, "dependencies": { diff --git a/test/Microsoft.TestPlatform.CommunicationUtilities.UnitTests/TestRequestSenderTests.cs b/test/Microsoft.TestPlatform.CommunicationUtilities.UnitTests/TestRequestSenderTests.cs index 70c51928a7..5f05e6599c 100644 --- a/test/Microsoft.TestPlatform.CommunicationUtilities.UnitTests/TestRequestSenderTests.cs +++ b/test/Microsoft.TestPlatform.CommunicationUtilities.UnitTests/TestRequestSenderTests.cs @@ -5,6 +5,7 @@ namespace TestPlatform.CommunicationUtilities.UnitTests using System; using System.Collections.Generic; using System.Threading; + using System.Threading.Tasks; using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities; using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.Interfaces; @@ -14,9 +15,9 @@ namespace TestPlatform.CommunicationUtilities.UnitTests using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging; using Microsoft.VisualStudio.TestTools.UnitTesting; + using CommunicationUtilitiesResources = Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.Resources.Resources; + using Moq; - using System.IO; - using System.Threading.Tasks; [TestClass] public class TestRequestSenderTests @@ -447,7 +448,7 @@ public void StartTestRunShouldCallHandleTestRunCompleteAndHandleLogMessageOnConn waitHandle.WaitOne(); this.testRequestSender.EndSession(); - mockHandler.Verify(mh => mh.HandleLogMessage(TestMessageLevel.Error, string.Format(Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.Resources.AbortedTestRun, Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.Resources.ConnectionClosed)), Times.Once); + mockHandler.Verify(mh => mh.HandleLogMessage(TestMessageLevel.Error, string.Format(CommunicationUtilitiesResources.AbortedTestRun, CommunicationUtilitiesResources.ConnectionClosed)), Times.Once); mockHandler.Verify(mh => mh.HandleTestRunComplete(It.IsAny(), null, null, null), Times.Once); mockHandler.Verify(mh => mh.HandleRawMessage(testCompleteRawMessage), Times.Once); mockCommunicationManager.Verify(mc => mc.SendMessage(MessageType.SessionEnd), Times.Never); diff --git a/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Discovery/DiscoveryManagerTests.cs b/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Discovery/DiscoveryManagerTests.cs index 0a29ce71d1..781ee45930 100644 --- a/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Discovery/DiscoveryManagerTests.cs +++ b/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Discovery/DiscoveryManagerTests.cs @@ -8,17 +8,17 @@ namespace TestPlatform.CrossPlatEngine.UnitTests.Discovery using System.Reflection; using Microsoft.VisualStudio.TestPlatform.Common.ExtensionFramework; - using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine; using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Discovery; using Microsoft.VisualStudio.TestPlatform.ObjectModel; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client; - using Microsoft.VisualStudio.TestPlatform.ObjectModel.Engine; using Microsoft.VisualStudio.TestTools.UnitTesting; using Moq; using TestPlatform.Common.UnitTests.ExtensionFramework; + using CrossPlatEngineResources = Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Resources.Resources; + [TestClass] public class DiscoveryManagerTests { @@ -87,7 +87,7 @@ public void DiscoverTestsShouldLogIfThereAreNoValidSources() this.discoveryManager.DiscoverTests(criteria, mockLogger.Object); var sourcesString = string.Join(",", sources.ToArray()); - var errorMessage = string.Format(CultureInfo.CurrentCulture, Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Resources.NoValidSourceFoundForDiscovery, sourcesString); + var errorMessage = string.Format(CultureInfo.CurrentCulture, CrossPlatEngineResources.NoValidSourceFoundForDiscovery, sourcesString); mockLogger.Verify( l => l.HandleLogMessage( @@ -114,7 +114,7 @@ public void DiscoverTestsShouldLogIfTheSameSourceIsSpecifiedTwice() this.discoveryManager.DiscoverTests(criteria, mockLogger.Object); - var errorMessage = string.Format(CultureInfo.CurrentCulture, Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Resources.DuplicateSource, sources[0]); + var errorMessage = string.Format(CultureInfo.CurrentCulture, CrossPlatEngineResources.DuplicateSource, sources[0]); mockLogger.Verify( l => l.HandleLogMessage( diff --git a/test/Microsoft.TestPlatform.Extensions.TrxLogger.UnitTests/TrxLoggerTests.cs b/test/Microsoft.TestPlatform.Extensions.TrxLogger.UnitTests/TrxLoggerTests.cs index 260570c6ea..12f1674d2b 100644 --- a/test/Microsoft.TestPlatform.Extensions.TrxLogger.UnitTests/TrxLoggerTests.cs +++ b/test/Microsoft.TestPlatform.Extensions.TrxLogger.UnitTests/TrxLoggerTests.cs @@ -3,20 +3,25 @@ namespace Microsoft.TestPlatform.Extensions.TrxLogger.UnitTests { using System; + using System.Collections.Generic; + using System.Collections.ObjectModel; + using System.Globalization; + using System.Linq; - using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.VisualStudio.TestPlatform.Extensions.TrxLogger; - using VisualStudio.TestPlatform.ObjectModel.Client; + using Microsoft.VisualStudio.TestTools.UnitTesting; + using Moq; - using System.Collections.Generic; + + using Utility; + + using VisualStudio.TestPlatform.ObjectModel; + using VisualStudio.TestPlatform.ObjectModel.Client; using VisualStudio.TestPlatform.ObjectModel.Logging; + using ObjectModel = Microsoft.VisualStudio.TestPlatform.ObjectModel; using TrxLoggerObjectModel = Microsoft.TestPlatform.Extensions.TrxLogger.ObjectModel; - using System.Globalization; - using VisualStudio.TestPlatform.ObjectModel; - using System.Collections.ObjectModel; - using Utility; - using System.Linq; + using TrxLoggerResources = Microsoft.TestPlatform.Extensions.TrxLogger.Resources.TrxResource; [TestClass] public class TrxLoggerTests @@ -209,7 +214,7 @@ public void TestResultHandlerLockingAMessageForSkipTest() this.trxLogger.TestResultHandler(new object(), skip1.Object); - string expectedMessage = String.Format(CultureInfo.CurrentCulture, TrxResource.MessageForSkippedTests, "Skip1"); + string expectedMessage = String.Format(CultureInfo.CurrentCulture, TrxLoggerResources.MessageForSkippedTests, "Skip1"); Assert.AreEqual(String.Compare(this.trxLogger.GetRunLevelInformationalMessage(), expectedMessage, true), 0); } diff --git a/test/vstest.console.UnitTests/ExecutorUnitTests.cs b/test/vstest.console.UnitTests/ExecutorUnitTests.cs index 63b272e0e5..9c3c0f363d 100644 --- a/test/vstest.console.UnitTests/ExecutorUnitTests.cs +++ b/test/vstest.console.UnitTests/ExecutorUnitTests.cs @@ -13,6 +13,8 @@ namespace Microsoft.VisualStudio.TestPlatform.CommandLine.UnitTests using Utilities; + using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; + [TestClass] public class ExecutorUnitTests { @@ -41,7 +43,7 @@ public void ExecutorPrintsSplashScreenTest() // Just check first 20 characters - don't need to check whole thing as assembly version is variable Assert.IsTrue(mockOutput.Messages.First().Message.Contains( - Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.MicrosoftCommandLineTitle.Substring(0, 20)), + CommandLineResources.MicrosoftCommandLineTitle.Substring(0, 20)), "First Printed message must be Microsoft Copyright"); } diff --git a/test/vstest.console.UnitTests/Internal/ConsoleLoggerTests.cs b/test/vstest.console.UnitTests/Internal/ConsoleLoggerTests.cs index 865d0755ca..cb68c49b56 100644 --- a/test/vstest.console.UnitTests/Internal/ConsoleLoggerTests.cs +++ b/test/vstest.console.UnitTests/Internal/ConsoleLoggerTests.cs @@ -2,21 +2,24 @@ namespace Microsoft.VisualStudio.TestPlatform.CommandLine.UnitTests.Internal { + using System; + using System.Collections.Generic; + using System.Collections.ObjectModel; + using System.Globalization; + using System.Threading; + using Microsoft.VisualStudio.TestPlatform.CommandLine.Internal; + using Microsoft.VisualStudio.TestPlatform.CommandLine.UnitTests.Processors; + using Microsoft.VisualStudio.TestPlatform.Common.Logging; + using Microsoft.VisualStudio.TestPlatform.ObjectModel; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client; + using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging; using Microsoft.VisualStudio.TestPlatform.Utilities; using Microsoft.VisualStudio.TestTools.UnitTesting; + using Moq; - using System; - using System.Collections.Generic; - using Microsoft.VisualStudio.TestPlatform.Common.Logging; - using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging; - using Microsoft.VisualStudio.TestPlatform.CommandLine.UnitTests.Processors; - using System.Threading; - using Microsoft.VisualStudio.TestPlatform.ObjectModel; - using System.Globalization; - using System.Collections.ObjectModel; - using Resources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources; + + using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; [TestClass] public class ConsoleLoggerTests @@ -102,12 +105,12 @@ public void TestResultHandlerShouldWriteToConsoleIfTestResultEventsAreRaised() this.testRunRequest.Raise(m => m.OnRunStatsChange += null, eventArgs); this.FlushLoggerMessages(); - this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, Resources.PassedTestIndicator, "TestName"), OutputLevel.Information), Times.Once()); - this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, Resources.FailedTestIndicator, "TestName"), OutputLevel.Information), Times.Once()); - this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, Resources.SkippedTestIndicator, "TestName"), OutputLevel.Information), Times.Once()); - this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, Resources.SkippedTestIndicator, "TestName"), OutputLevel.Information), Times.Once()); - this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, Resources.SkippedTestIndicator, "TestName"), OutputLevel.Information), Times.Once()); - this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, Resources.SkippedTestIndicator, "TestName"), OutputLevel.Information), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.PassedTestIndicator, "TestName"), OutputLevel.Information), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.FailedTestIndicator, "TestName"), OutputLevel.Information), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.SkippedTestIndicator, "TestName"), OutputLevel.Information), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.SkippedTestIndicator, "TestName"), OutputLevel.Information), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.SkippedTestIndicator, "TestName"), OutputLevel.Information), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.SkippedTestIndicator, "TestName"), OutputLevel.Information), Times.Once()); } [TestMethod] @@ -130,8 +133,8 @@ public void TestRunCompleteHandlerShouldWriteToConsoleIfTestsPass() // Raise an event on mock object this.testRunRequest.Raise(m => m.OnRunCompletion += null, new TestRunCompleteEventArgs(null, false, false, null, null, new TimeSpan(1, 0, 0, 0))); - this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, Resources.TestRunSummary, 1, 1, 0, 0), OutputLevel.Information), Times.Once()); - this.mockOutput.Verify(o => o.WriteLine(Resources.TestRunSuccessful, OutputLevel.Information), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.TestRunSummary, 1, 1, 0, 0), OutputLevel.Information), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(CommandLineResources.TestRunSuccessful, OutputLevel.Information), Times.Once()); } [TestMethod] @@ -144,8 +147,8 @@ public void TestRunCompleteHandlerShouldWriteToConsoleIfTestsFail() // Raise an event on mock object this.testRunRequest.Raise(m => m.OnRunCompletion += null, new TestRunCompleteEventArgs(null, false, false, null, null, new TimeSpan(1, 0, 0, 0))); - this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, Resources.TestRunSummary, 1, 0, 1, 0), OutputLevel.Information), Times.Once()); - this.mockOutput.Verify(o => o.WriteLine(Resources.TestRunFailed, OutputLevel.Error), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.TestRunSummary, 1, 0, 1, 0), OutputLevel.Information), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(CommandLineResources.TestRunFailed, OutputLevel.Error), Times.Once()); } [TestMethod] @@ -162,10 +165,10 @@ public void PrintTimeHandlerShouldPrintElapsedTimeOnConsole() this.testRunRequest.Raise(m => m.OnRunCompletion += null, new TestRunCompleteEventArgs(null, false, false, null, null, new TimeSpan(0, 0, 0, 1))); // Verify PrintTimeSpan with different formats - this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, Resources.ExecutionTimeFormatString, 1, Resources.Days), OutputLevel.Information), Times.Once()); - this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, Resources.ExecutionTimeFormatString, 1, Resources.Hours), OutputLevel.Information), Times.Once()); - this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, Resources.ExecutionTimeFormatString, 1, Resources.Minutes), OutputLevel.Information), Times.Once()); - this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, Resources.ExecutionTimeFormatString, 1, Resources.Seconds), OutputLevel.Information), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.ExecutionTimeFormatString, 1, CommandLineResources.Days), OutputLevel.Information), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.ExecutionTimeFormatString, 1, CommandLineResources.Hours), OutputLevel.Information), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.ExecutionTimeFormatString, 1, CommandLineResources.Minutes), OutputLevel.Information), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.ExecutionTimeFormatString, 1, CommandLineResources.Seconds), OutputLevel.Information), Times.Once()); } [TestMethod] @@ -181,10 +184,10 @@ public void DisplayFullInformationShouldWriteErrorMessageAndStackTraceToConsole( this.testRunRequest.Raise(m => m.OnRunStatsChange += null, eventArgs); this.FlushLoggerMessages(); - this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, "{0}{1}", Resources.TestMessageFormattingPrefix, "ErrorMessage"), OutputLevel.Error), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, "{0}{1}", CommandLineResources.TestMessageFormattingPrefix, "ErrorMessage"), OutputLevel.Error), Times.Once()); this.mockOutput.Verify(o => o.Write(string.Format(CultureInfo.CurrentCulture, "{0}", "ErrorStackTrace"), OutputLevel.Error), Times.Once()); - this.mockOutput.Verify(o => o.WriteLine(Resources.ErrorMessageBanner, OutputLevel.Error), Times.Once()); - this.mockOutput.Verify(o => o.WriteLine(Resources.StacktraceBanner, OutputLevel.Error), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(CommandLineResources.ErrorMessageBanner, OutputLevel.Error), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(CommandLineResources.StacktraceBanner, OutputLevel.Error), Times.Once()); } [TestMethod] @@ -208,13 +211,13 @@ public void GetTestMessagesShouldWriteMessageAndStackTraceToConsole() // Added this for synchronization SpinWait.SpinUntil(() => count == 3, 300); - this.mockOutput.Verify(o => o.WriteLine(Resources.StdOutMessagesBanner, OutputLevel.Information), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(CommandLineResources.StdOutMessagesBanner, OutputLevel.Information), Times.Once()); this.mockOutput.Verify(o => o.Write(" StandardOutCategory", OutputLevel.Information), Times.Once()); - this.mockOutput.Verify(o => o.WriteLine(Resources.StdErrMessagesBanner, OutputLevel.Error), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(CommandLineResources.StdErrMessagesBanner, OutputLevel.Error), Times.Once()); this.mockOutput.Verify(o => o.Write(" StandardErrorCategory", OutputLevel.Error), Times.Once()); - this.mockOutput.Verify(o => o.WriteLine(Resources.AddnlInfoMessagesBanner, OutputLevel.Information), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(CommandLineResources.AddnlInfoMessagesBanner, OutputLevel.Information), Times.Once()); this.mockOutput.Verify(o => o.Write(" AdditionalInfoCategory AnotherAdditionalInfoCategory", OutputLevel.Information), Times.Once()); } @@ -233,8 +236,8 @@ public void AttachmentInformationShouldBeWrittenToConsoleIfAttachmentsArePresent // Raise an event on mock object raised to register test case count and mark Outcome as Outcome.Failed this.testRunRequest.Raise(m => m.OnRunCompletion += null, testRunCompleteEventArgs); - this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, Resources.AttachmentOutputFormat, uriDataAttachment.Uri.LocalPath), OutputLevel.Information), Times.Once()); - this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, Resources.AttachmentOutputFormat, uriDataAttachment1.Uri.LocalPath), OutputLevel.Information), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.AttachmentOutputFormat, uriDataAttachment.Uri.LocalPath), OutputLevel.Information), Times.Once()); + this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.AttachmentOutputFormat, uriDataAttachment1.Uri.LocalPath), OutputLevel.Information), Times.Once()); } /// diff --git a/test/vstest.console.UnitTests/Processors/EnableDiagArgumentProcessorTests.cs b/test/vstest.console.UnitTests/Processors/EnableDiagArgumentProcessorTests.cs index 9e7b8e43c8..42adacbcc6 100644 --- a/test/vstest.console.UnitTests/Processors/EnableDiagArgumentProcessorTests.cs +++ b/test/vstest.console.UnitTests/Processors/EnableDiagArgumentProcessorTests.cs @@ -12,7 +12,7 @@ namespace Microsoft.VisualStudio.TestPlatform.CommandLine.UnitTests.Processors using Moq; - using Resources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources; + using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; [TestClass] public class EnableDiagArgumentProcessorTests @@ -40,7 +40,7 @@ public void EnableDiagArgumentProcessorMetadataShouldProvideAppropriateCapabilit Assert.AreEqual(null, this.diagProcessor.Metadata.Value.ShortCommandName); Assert.AreEqual(ArgumentProcessorPriority.Diag, this.diagProcessor.Metadata.Value.Priority); Assert.AreEqual(HelpContentPriority.EnableDiagArgumentProcessorHelpPriority, this.diagProcessor.Metadata.Value.HelpPriority); - Assert.AreEqual(Resources.EnableDiagUsage, this.diagProcessor.Metadata.Value.HelpContentResourceName); + Assert.AreEqual(CommandLineResources.EnableDiagUsage, this.diagProcessor.Metadata.Value.HelpContentResourceName); } [TestMethod] From 6a7a6fa6dc4fcc228387dcabfa655d3381719d18 Mon Sep 17 00:00:00 2001 From: Sai Krishna Vajjala Date: Sat, 15 Oct 2016 00:55:23 +0530 Subject: [PATCH 12/19] Add XML Merge Tests --- src/testhost.x86/AppDomainEngineInvoker.cs | 8 +- .../AppDomainEngineInvokerTests.cs | 188 +++++++++++++++++- 2 files changed, 190 insertions(+), 6 deletions(-) diff --git a/src/testhost.x86/AppDomainEngineInvoker.cs b/src/testhost.x86/AppDomainEngineInvoker.cs index dffc69b57c..918f223c13 100644 --- a/src/testhost.x86/AppDomainEngineInvoker.cs +++ b/src/testhost.x86/AppDomainEngineInvoker.cs @@ -171,13 +171,13 @@ protected static string MergeApplicationConfigFiles(string userConfigFile, strin var runtimeTestHostNode = testHostConfigDoc.Descendants("runtime")?.FirstOrDefault(); if (runtimeTestHostNode != null) { - // remove test host relative probing paths' element - // TestHost Probing Paths do not make sense since we are setting "AppBase" to user's test assembly location - runtimeTestHostNode.Descendants().Where((element) => string.Equals(element.Name.LocalName, "probing")).Remove(); - var runTimeNode = mergedDoc.Descendants("runtime")?.FirstOrDefault(); if (runTimeNode == null) { + // remove test host relative probing paths' element + // TestHost Probing Paths do not make sense since we are setting "AppBase" to user's test assembly location + runtimeTestHostNode.Descendants().Where((element) => string.Equals(element.Name.LocalName, "probing")).Remove(); + // no runtime node exists in user's config - just add ours entirely mergedDoc.Root.Add(runtimeTestHostNode); } diff --git a/test/testhost.UnitTests/AppDomainEngineInvokerTests.cs b/test/testhost.UnitTests/AppDomainEngineInvokerTests.cs index e930a4da79..cb9a81e4eb 100644 --- a/test/testhost.UnitTests/AppDomainEngineInvokerTests.cs +++ b/test/testhost.UnitTests/AppDomainEngineInvokerTests.cs @@ -8,10 +8,37 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; + using System.Xml.Linq; [TestClass] public class AppDomainEngineInvokerTests { + private const string XmlNamespace = "urn:schemas-microsoft-com:asm.v1"; + private const string testHostConfigXml = @" + + + + + + + + + + + + + + + + + + + + + + + + "; [TestMethod] public void AppDomainEngineInvokerShouldCreateNewAppDomain() { @@ -25,16 +52,168 @@ public void AppDomainEngineInvokerShouldCreateNewAppDomain() } [TestMethod] - public void AppDomainEngineInvokerShouldInvokeEngineInNewDomain() + public void AppDomainEngineInvokerShouldInvokeEngineInNewDomainAndUseTestHostConfigFile() { var tempFile = Path.GetTempFileName(); var appDomainInvoker = new TestableEngineInvoker(tempFile); - Assert.IsNotNull(appDomainInvoker.NewAppDomain, "New AppDomain must be created."); + var newAppDomain = appDomainInvoker.NewAppDomain; + + Assert.IsNotNull(newAppDomain, "New AppDomain must be created."); Assert.IsNotNull(appDomainInvoker.ActualInvoker, "Invoker must be created."); Assert.AreNotEqual(AppDomain.CurrentDomain.FriendlyName, (appDomainInvoker.ActualInvoker as MockEngineInvoker).DomainFriendlyName, "Engine must be invoked in new domain."); + + Assert.AreEqual(newAppDomain.SetupInformation.ConfigurationFile, AppDomain.CurrentDomain.SetupInformation.ConfigurationFile, + "TestHost config file must be used in the absence of user config file."); + } + + [TestMethod] + public void AppDomainEngineInvokerShouldUseTestHostStartupConfigAndRuntimeAfterMerging() + { + string appConfig = @" + + + + + "; + + var userConfigFile = Path.GetTempFileName(); + File.WriteAllText(userConfigFile, appConfig); + + var testHostConfigFile = Path.GetTempFileName(); + File.WriteAllText(testHostConfigFile, testHostConfigXml); + + string mergedConfigFile = TestableEngineInvoker.MergeConfigFiles(userConfigFile, testHostConfigFile); + + var doc = XDocument.Load(mergedConfigFile); + var startupElements = doc.Descendants("startup"); + + Assert.AreEqual(1, startupElements.Count(), "Merged config must have only one 'startup' element"); + + var supportedRunTimeXml = startupElements.First().Descendants("supportedRuntime").FirstOrDefault()?.ToString(); + Assert.AreEqual(supportedRunTimeXml, @"", + "TestHost Supported RunTime must be used on merging"); + + var runtimeEle = doc.Descendants("runtime").FirstOrDefault(); + Assert.IsNotNull(runtimeEle, "Runtime element must be present"); + + var legacyUnhandledEleExpectedXml = @""; + + Assert.AreEqual(legacyUnhandledEleExpectedXml, runtimeEle.Descendants("legacyUnhandledExceptionPolicy").First()?.ToString(), + "legacyUnhandledExceptionPolicy element must be of the TestHost one."); + + Assert.IsFalse(runtimeEle.ToString().Contains("probing"), "Probing element of TestHost must not be present."); + + var assemblyBindingXName = XName.Get("assemblyBinding", XmlNamespace); + var mergedDocAssemblyBindingNodes = runtimeEle.Descendants(assemblyBindingXName); + Assert.AreEqual(1, mergedDocAssemblyBindingNodes.Count(), "AssemblyRedirect of TestHost must be present."); + + var dependentAssemblyXName = XName.Get("dependentAssembly", XmlNamespace); + var dependentAssemblyNodes = mergedDocAssemblyBindingNodes.First().Descendants(dependentAssemblyXName); + Assert.AreEqual(1, dependentAssemblyNodes.Count(), "AssemblyRedirect of TestHost must be present."); + Assert.IsTrue(dependentAssemblyNodes.First().ToString().Contains("Microsoft.VisualStudio.TestPlatform.ObjectModel"), "Correct AssemblyRedirect must be present."); + + var diagEle = doc.Descendants("system.diagnostics").FirstOrDefault(); + var appSettingsEle = doc.Descendants("appSettings").FirstOrDefault(); + + Assert.IsNull(diagEle, "No Diagnostics element must be present as user config does not have it."); + Assert.IsNull(appSettingsEle, "No AppSettings element must be present as user config does not have it."); + } + + [TestMethod] + public void AppDomainEngineInvokerShouldOnlyMergeAssemblyRedirectionsFromTestHost() + { + string appConfig = @" + + + + + + + + + + + "; + + var userConfigFile = Path.GetTempFileName(); + File.WriteAllText(userConfigFile, appConfig); + + var testHostConfigFile = Path.GetTempFileName(); + File.WriteAllText(testHostConfigFile, testHostConfigXml); + + string mergedConfigFile = TestableEngineInvoker.MergeConfigFiles(userConfigFile, testHostConfigFile); + + var doc = XDocument.Load(mergedConfigFile); + var runtimeEle = doc.Descendants("runtime").FirstOrDefault(); + + Assert.AreEqual(0, runtimeEle.Descendants("legacyUnhandledExceptionPolicy").Count(), "legacyUnhandledExceptionPolicy element must NOT be present."); + + var probingXName = XName.Get("probing", XmlNamespace); + var probingEleNodes = runtimeEle.Descendants(probingXName); + Assert.AreEqual(1, probingEleNodes.Count(), "Only one Probing element of UserConfig must be present."); + Assert.AreEqual(@"", probingEleNodes.First().ToString(), "Probing element must be correct."); + + var assemblyBindingXName = XName.Get("assemblyBinding", XmlNamespace); + var mergedDocAssemblyBindingNodes = runtimeEle.Descendants(assemblyBindingXName); + Assert.AreEqual(1, mergedDocAssemblyBindingNodes.Count(), "AssemblyBinding Ele must be present."); + + var dependentAssemblyXName = XName.Get("dependentAssembly", XmlNamespace); + var dependentAssemblyNodes = mergedDocAssemblyBindingNodes.First().Descendants(dependentAssemblyXName); + Assert.AreEqual(2, dependentAssemblyNodes.Count(), "AssemblyBinding of TestHost must be present."); + + Assert.IsTrue(dependentAssemblyNodes.ElementAt(0).ToString().Contains("Microsoft.VisualStudio.UnitTests"), "First AssemblyRedirect must be of UserConfig."); + Assert.IsTrue(dependentAssemblyNodes.ElementAt(1).ToString().Contains("Microsoft.VisualStudio.TestPlatform.ObjectModel"), "Second AssemblyRedirect must be from TestHost Node."); + + var diagEle = doc.Descendants("system.diagnostics").FirstOrDefault(); + var appSettingsEle = doc.Descendants("appSettings").FirstOrDefault(); + + Assert.IsNull(diagEle, "No Diagnostics element must be present as user config does not have it."); + Assert.IsNull(appSettingsEle, "No AppSettings element must be present as user config does not have it."); + } + + [TestMethod] + public void AppDomainEngineInvokerShouldUseDiagAndAppSettingsElementsUnMergedFromUserConfig() + { + string appConfig = @" + + + + + + + + + + "; + + var userConfigFile = Path.GetTempFileName(); + File.WriteAllText(userConfigFile, appConfig); + + var testHostConfigFile = Path.GetTempFileName(); + File.WriteAllText(testHostConfigFile, testHostConfigXml); + + string mergedConfigFile = TestableEngineInvoker.MergeConfigFiles(userConfigFile, testHostConfigFile); + + var doc = XDocument.Load(mergedConfigFile); + + var diagEle = doc.Descendants("system.diagnostics").FirstOrDefault(); + var appSettingsEle = doc.Descendants("appSettings").FirstOrDefault(); + + Assert.IsNotNull(diagEle, "Diagnostics element must be retained from user config."); + Assert.IsNotNull(appSettingsEle, "AppSettings element must be retained from user config."); + + var diagAddNodes = diagEle.Descendants("add"); + Assert.AreEqual(1, diagAddNodes.Count(), "Only switches from user config should be present."); + Assert.AreEqual(@"", diagAddNodes.First().ToString(), + "Correct Switch must be merged."); + + var appSettingsAddNodes = appSettingsEle.Descendants("add"); + Assert.AreEqual(1, appSettingsAddNodes.Count(), "Only switches from user config should be present."); + Assert.AreEqual(@"", appSettingsAddNodes.First().ToString(), + "Correct Switch must be merged."); } private class TestableEngineInvoker : AppDomainEngineInvoker @@ -43,6 +222,11 @@ public TestableEngineInvoker(string testSourcePath) : base(testSourcePath) { } + public static string MergeConfigFiles(string userConfig, string testHostConfig) + { + return MergeApplicationConfigFiles(userConfig, testHostConfig); + } + public AppDomain NewAppDomain => this.appDomain; public IEngineInvoker ActualInvoker => this.actualInvoker; From 64c16e2a0d264a846d48d76a0cef024614a450dc Mon Sep 17 00:00:00 2001 From: Sai Krishna Vajjala Date: Wed, 19 Oct 2016 16:34:50 +0530 Subject: [PATCH 13/19] Cleanup and comment fixes --- .../Interfaces/ITestPlatformEventSource.cs | 10 ++++ .../Tracing/TestPlatformEventSource.cs | 14 ++++++ .../TestPlatformInstrumentationEvents.cs | 10 ++++ src/testhost.x86/AppDomainEngineInvoker.cs | 48 +++++++++++-------- .../AppDomainEngineInvokerTests.cs | 35 ++++---------- 5 files changed, 70 insertions(+), 47 deletions(-) diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Tracing/Interfaces/ITestPlatformEventSource.cs b/src/Microsoft.TestPlatform.CoreUtilities/Tracing/Interfaces/ITestPlatformEventSource.cs index 5969fb608a..00ace806cd 100644 --- a/src/Microsoft.TestPlatform.CoreUtilities/Tracing/Interfaces/ITestPlatformEventSource.cs +++ b/src/Microsoft.TestPlatform.CoreUtilities/Tracing/Interfaces/ITestPlatformEventSource.cs @@ -48,6 +48,16 @@ public interface ITestPlatformEventSource /// void TestHostStop(); + /// + /// The test host AppDomain Start. + /// + void TestHostAppDomainCreationStart(); + + /// + /// The test host AppDomain Stop. + /// + void TestHostAppDomainCreationStop(); + /// /// The adapter search start. /// diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Tracing/TestPlatformEventSource.cs b/src/Microsoft.TestPlatform.CoreUtilities/Tracing/TestPlatformEventSource.cs index f5c252085e..fb25b6a3de 100644 --- a/src/Microsoft.TestPlatform.CoreUtilities/Tracing/TestPlatformEventSource.cs +++ b/src/Microsoft.TestPlatform.CoreUtilities/Tracing/TestPlatformEventSource.cs @@ -79,6 +79,20 @@ public void TestHostStop() this.WriteEvent(TestPlatformInstrumentationEvents.TestHostStopEventId); } + /// + [Event(TestPlatformInstrumentationEvents.TestHostAppDomainCreationStartEventId)] + public void TestHostAppDomainCreationStart() + { + this.WriteEvent(TestPlatformInstrumentationEvents.TestHostAppDomainCreationStartEventId); + } + + /// + [Event(TestPlatformInstrumentationEvents.TestHostAppDomainCreationStopEventId)] + public void TestHostAppDomainCreationStop() + { + this.WriteEvent(TestPlatformInstrumentationEvents.TestHostAppDomainCreationStopEventId); + } + /// [Event(TestPlatformInstrumentationEvents.AdapterSearchStartEventId)] public void AdapterSearchStart() diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Tracing/TestPlatformInstrumentationEvents.cs b/src/Microsoft.TestPlatform.CoreUtilities/Tracing/TestPlatformInstrumentationEvents.cs index 34d7b28cf7..7d3de28b54 100644 --- a/src/Microsoft.TestPlatform.CoreUtilities/Tracing/TestPlatformInstrumentationEvents.cs +++ b/src/Microsoft.TestPlatform.CoreUtilities/Tracing/TestPlatformInstrumentationEvents.cs @@ -107,5 +107,15 @@ internal class TestPlatformInstrumentationEvents /// The adapter discovery stop event id. /// public const int AdapterDiscoveryStopEventId = 0x28; + + /// + /// The test host appdomain start event id. + /// + public const int TestHostAppDomainCreationStartEventId = 0x30; + + /// + /// The test host appdomain stop event id. + /// + public const int TestHostAppDomainCreationStopEventId = 0x31; } } diff --git a/src/testhost.x86/AppDomainEngineInvoker.cs b/src/testhost.x86/AppDomainEngineInvoker.cs index 918f223c13..9510572885 100644 --- a/src/testhost.x86/AppDomainEngineInvoker.cs +++ b/src/testhost.x86/AppDomainEngineInvoker.cs @@ -4,6 +4,8 @@ namespace Microsoft.VisualStudio.TestPlatform.TestHost { #if NET46 using Microsoft.VisualStudio.TestPlatform.ObjectModel; + using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing; + using System; using System.IO; using System.Linq; @@ -23,12 +25,16 @@ namespace Microsoft.VisualStudio.TestPlatform.TestHost protected readonly IEngineInvoker actualInvoker; - private readonly string mergedConfigFile = null; + private string mergedTempConfigFile = null; public AppDomainEngineInvoker(string testSourcePath) { - this.appDomain = CreateNewAppDomain(testSourcePath, out mergedConfigFile); + TestPlatformEventSource.Instance.TestHostAppDomainCreationStart(); + + this.appDomain = CreateNewAppDomain(testSourcePath); this.actualInvoker = CreateInvokerInAppDomain(appDomain); + + TestPlatformEventSource.Instance.TestHostAppDomainCreationStop(); } /// @@ -50,9 +56,9 @@ public void Invoke(IDictionary argsDictionary) AppDomain.Unload(appDomain); } - if (this.mergedConfigFile != null && File.Exists(mergedConfigFile)) + if (!string.IsNullOrWhiteSpace(this.mergedTempConfigFile) && File.Exists(mergedTempConfigFile)) { - File.Delete(mergedConfigFile); + File.Delete(mergedTempConfigFile); } } catch @@ -62,7 +68,7 @@ public void Invoke(IDictionary argsDictionary) } } - private AppDomain CreateNewAppDomain(string testSourcePath, out string mergedConfigFile) + private AppDomain CreateNewAppDomain(string testSourcePath) { var appDomainSetup = new AppDomainSetup(); var testSourceFolder = Path.GetDirectoryName(testSourcePath); @@ -72,7 +78,7 @@ private AppDomain CreateNewAppDomain(string testSourcePath, out string mergedCon appDomainSetup.LoaderOptimization = LoaderOptimization.MultiDomainHost; // Set User Config file as app domain config - SetConfigurationFile(appDomainSetup, testSourcePath, testSourceFolder, out mergedConfigFile); + SetConfigurationFile(appDomainSetup, testSourcePath, testSourceFolder); // Create new AppDomain return AppDomain.CreateDomain("TestHostAppDomain", null, appDomainSetup); @@ -110,17 +116,25 @@ private IEngineInvoker CreateInvokerInAppDomain(AppDomain appDomain) null); } - private static void SetConfigurationFile(AppDomainSetup appDomainSetup, string testSource, string testSourceFolder, out string mergedConfigFile) + private void SetConfigurationFile(AppDomainSetup appDomainSetup, string testSource, string testSourceFolder) { - var configFile = GetConfigFile(testSource, testSourceFolder); - mergedConfigFile = null; + var userConfigFile = GetConfigFile(testSource, testSourceFolder); var testHostAppConfigFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile; - if (!string.IsNullOrEmpty(configFile)) + if (!string.IsNullOrEmpty(userConfigFile)) { + var userConfigDoc = XDocument.Load(userConfigFile); + var testHostConfigDoc = XDocument.Load(testHostAppConfigFile); + // Merge user's config file and testHost config file and use merged one - mergedConfigFile = MergeApplicationConfigFiles(configFile, testHostAppConfigFile); - appDomainSetup.ConfigurationFile = mergedConfigFile; + var mergedConfigDocument = MergeApplicationConfigFiles(userConfigDoc, testHostConfigDoc); + + // Create a temp file with config + this.mergedTempConfigFile = Path.GetTempFileName(); + mergedConfigDocument.Save(this.mergedTempConfigFile); + + // Set config file to merged one + appDomainSetup.ConfigurationFile = this.mergedTempConfigFile; } else { @@ -150,11 +164,8 @@ private static string GetConfigFile(string testSource, string testSourceFolder) return configFile; } - protected static string MergeApplicationConfigFiles(string userConfigFile, string testHostConfigFile) + protected static XDocument MergeApplicationConfigFiles(XDocument userConfigDoc, XDocument testHostConfigDoc) { - var userConfigDoc = XDocument.Load(userConfigFile); - var testHostConfigDoc = XDocument.Load(testHostConfigFile); - // Start with User's config file as the base var mergedDoc = new XDocument(userConfigDoc); @@ -208,10 +219,7 @@ protected static string MergeApplicationConfigFiles(string userConfigFile, strin } } - var tempFile = Path.GetTempFileName(); - mergedDoc.Save(tempFile); - - return tempFile; + return mergedDoc; } } diff --git a/test/testhost.UnitTests/AppDomainEngineInvokerTests.cs b/test/testhost.UnitTests/AppDomainEngineInvokerTests.cs index cb9a81e4eb..5fe14cfaf9 100644 --- a/test/testhost.UnitTests/AppDomainEngineInvokerTests.cs +++ b/test/testhost.UnitTests/AppDomainEngineInvokerTests.cs @@ -9,6 +9,7 @@ using System.Linq; using System.Threading.Tasks; using System.Xml.Linq; + using System.Text; [TestClass] public class AppDomainEngineInvokerTests @@ -79,15 +80,8 @@ public void AppDomainEngineInvokerShouldUseTestHostStartupConfigAndRuntimeAfterM "; - var userConfigFile = Path.GetTempFileName(); - File.WriteAllText(userConfigFile, appConfig); + var doc = TestableEngineInvoker.MergeConfigXmls(appConfig, testHostConfigXml); - var testHostConfigFile = Path.GetTempFileName(); - File.WriteAllText(testHostConfigFile, testHostConfigXml); - - string mergedConfigFile = TestableEngineInvoker.MergeConfigFiles(userConfigFile, testHostConfigFile); - - var doc = XDocument.Load(mergedConfigFile); var startupElements = doc.Descendants("startup"); Assert.AreEqual(1, startupElements.Count(), "Merged config must have only one 'startup' element"); @@ -138,15 +132,8 @@ public void AppDomainEngineInvokerShouldOnlyMergeAssemblyRedirectionsFromTestHos "; - var userConfigFile = Path.GetTempFileName(); - File.WriteAllText(userConfigFile, appConfig); - - var testHostConfigFile = Path.GetTempFileName(); - File.WriteAllText(testHostConfigFile, testHostConfigXml); - - string mergedConfigFile = TestableEngineInvoker.MergeConfigFiles(userConfigFile, testHostConfigFile); + var doc = TestableEngineInvoker.MergeConfigXmls(appConfig, testHostConfigXml); - var doc = XDocument.Load(mergedConfigFile); var runtimeEle = doc.Descendants("runtime").FirstOrDefault(); Assert.AreEqual(0, runtimeEle.Descendants("legacyUnhandledExceptionPolicy").Count(), "legacyUnhandledExceptionPolicy element must NOT be present."); @@ -189,15 +176,7 @@ public void AppDomainEngineInvokerShouldUseDiagAndAppSettingsElementsUnMergedFro "; - var userConfigFile = Path.GetTempFileName(); - File.WriteAllText(userConfigFile, appConfig); - - var testHostConfigFile = Path.GetTempFileName(); - File.WriteAllText(testHostConfigFile, testHostConfigXml); - - string mergedConfigFile = TestableEngineInvoker.MergeConfigFiles(userConfigFile, testHostConfigFile); - - var doc = XDocument.Load(mergedConfigFile); + var doc = TestableEngineInvoker.MergeConfigXmls(appConfig,testHostConfigXml); var diagEle = doc.Descendants("system.diagnostics").FirstOrDefault(); var appSettingsEle = doc.Descendants("appSettings").FirstOrDefault(); @@ -222,9 +201,11 @@ public TestableEngineInvoker(string testSourcePath) : base(testSourcePath) { } - public static string MergeConfigFiles(string userConfig, string testHostConfig) + public static XDocument MergeConfigXmls(string userConfigText, string testHostConfigText) { - return MergeApplicationConfigFiles(userConfig, testHostConfig); + return MergeApplicationConfigFiles( + XDocument.Load(new MemoryStream(Encoding.UTF8.GetBytes(userConfigText))), + XDocument.Load(new MemoryStream(Encoding.UTF8.GetBytes(testHostConfigText)))); } public AppDomain NewAppDomain => this.appDomain; From 7ee05fd824745f95c86c7daf910c253616e2ed39 Mon Sep 17 00:00:00 2001 From: Sarabjot Singh Date: Wed, 19 Oct 2016 20:38:09 +0530 Subject: [PATCH 14/19] Adding the MetaPackage which contains the targets file required for building the .NET core test projects. --- .../Microsoft.NET.Test.SDK.nuspec | 20 ++++++ .../Microsoft.NET.Test.SDK.targets | 65 +++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 src/Microsoft.Net.Test.SDK/Microsoft.NET.Test.SDK.nuspec create mode 100644 src/Microsoft.Net.Test.SDK/Microsoft.NET.Test.SDK.targets diff --git a/src/Microsoft.Net.Test.SDK/Microsoft.NET.Test.SDK.nuspec b/src/Microsoft.Net.Test.SDK/Microsoft.NET.Test.SDK.nuspec new file mode 100644 index 0000000000..dce94261b7 --- /dev/null +++ b/src/Microsoft.Net.Test.SDK/Microsoft.NET.Test.SDK.nuspec @@ -0,0 +1,20 @@ + + + + Microsoft.NET.Test.SDK + 1.0.0-preview + The MSbuild targets and properties for building the .Net core test projects. + Microsoft + Microsoft + false + The MSbuild targets and properties for building the .Net core test projects. + Copyright 2015 + + + + + + + + + \ No newline at end of file diff --git a/src/Microsoft.Net.Test.SDK/Microsoft.NET.Test.SDK.targets b/src/Microsoft.Net.Test.SDK/Microsoft.NET.Test.SDK.targets new file mode 100644 index 0000000000..35afe924fa --- /dev/null +++ b/src/Microsoft.Net.Test.SDK/Microsoft.NET.Test.SDK.targets @@ -0,0 +1,65 @@ + + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + $(IntermediateOutputPath)$(MSBuildProjectName).Program$(DefaultLanguageSourceExtension) + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From d2325fc8e7d5e8725b025d5c240dfb319da27ef4 Mon Sep 17 00:00:00 2001 From: Arun Mahapatra Date: Thu, 20 Oct 2016 14:01:09 +0530 Subject: [PATCH 15/19] Add neutral resources. (#147) --- .../Resources/xlf/Resources.xlf | 15 + .../Resources/xlf/Resources.xlf | 91 +++ .../Resources/xlf/Resources.xlf | 23 + .../Resources/xlf/Resources.xlf | 67 ++ .../Resources/xlf/Resources.xlf | 71 ++ .../Resources/xlf/TrxResource.xlf | 129 ++++ .../Resources/xlf/CommonResources.xlf | 19 + .../Resources/xlf/Resources.xlf | 261 +++++++ .../Resources/xlf/Resources.xlf | 35 + .../Resources/xlf/Resources.xlf | 23 + .../Resources/xlf/Resources.xlf | 705 ++++++++++++++++++ 11 files changed, 1439 insertions(+) create mode 100644 src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.xlf create mode 100644 src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.xlf create mode 100644 src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.xlf create mode 100644 src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.xlf create mode 100644 src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.xlf create mode 100644 src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.xlf create mode 100644 src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.xlf create mode 100644 src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.xlf create mode 100644 src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.xlf create mode 100644 src/vstest.console/Resources/xlf/Resources.xlf diff --git a/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.xlf b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.xlf new file mode 100644 index 0000000000..e020021cf6 --- /dev/null +++ b/src/Microsoft.TestPlatform.Client/Resources/xlf/Resources.xlf @@ -0,0 +1,15 @@ + + + + + + The test run could not be executed because the initial state was invalid. + + + + Wait for completion operation is not allowed when there is no active test run. + + + + + diff --git a/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.xlf b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.xlf new file mode 100644 index 0000000000..bc50f7fa3d --- /dev/null +++ b/src/Microsoft.TestPlatform.Common/Resources/xlf/Resources.xlf @@ -0,0 +1,91 @@ + + + + + + Diagnostic data adapter message: {0} + + + + Diagnostic data adapter ('{0}') message: {1}. + + + + Duplicate test extension URI '{0}'. Ignoring the duplicate extension. + + + + Duplicate settings provider named '{0}'. Ignoring the duplicate provider. + + + + Duplicated run settings section named '{0}' found. Ignoring the duplicate settings. + + + + Error: Empty parenthesis ( ) + + + + Error: Invalid Condition '{0}' + + + + Test Extension has an invalid URI '{0}': {1} + + + + Error: Invalid operator '{0}' + + + + Exception occurred while initializing logger with URI '{0}'. The logger will not be used. Exception: {1} + + + + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Error: Missing ')' + + + + Error: Missing '(' + + + + Error: Missing operand + + + + Missing Operator '|' or '&' + + + + The Run Settings have already been loaded. + + + + An error occurred while loading the run settings. Error: {0} + + + + Invalid settings node specified. The name property of the settings node must be non-empty. + + + + An error occurred while initializing the settings provider named '{0}'. Error: {1} + + + + Settings Provider named '{0}' was not found. The settings can not be loaded. + + + + Incorrect format for TestCaseFilter {0}. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed. + + + + + diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.xlf b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.xlf new file mode 100644 index 0000000000..4224f724a0 --- /dev/null +++ b/src/Microsoft.TestPlatform.CommunicationUtilities/Resources/xlf/Resources.xlf @@ -0,0 +1,23 @@ + + + + + + The active Test Run was aborted. + + + + An existing connection was forcibly closed by the remote host. + + + + The active Test Discovery was aborted. + + + + Unable to communicate with test execution process. + + + + + diff --git a/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.xlf b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.xlf new file mode 100644 index 0000000000..b9df068fc5 --- /dev/null +++ b/src/Microsoft.TestPlatform.CoreUtilities/Resources/xlf/Resources.xlf @@ -0,0 +1,67 @@ + + + + + + The parameter cannot be null or empty. + + + + Error: {0} + + + + Information: {0} + + + + Warning: {0} + + + + The specified argument cannot be empty. + + + + The specified argument cannot be negative. + + + + The specified argument must have the following type: {0}. + + + + The specified argument has the following property, which cannot be an empty string: {0}. + + + + The specified argument has the following property, which cannot be negative: {0}. + + + + The specified argument has the following property, which cannot be null: {0}. + + + + The specified argument has the following property: {0}. This property must have the following type: {1}. + + + + Unhandled exception occurred while processing a job from the '{0}' queue: {1} + + + + The {0} queue has already been disposed. + + + + The {0} queue cannot be disposed while paused. + + + + Error getting process name. + + + + + diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.xlf b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.xlf new file mode 100644 index 0000000000..fca8d33c7f --- /dev/null +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Resources/xlf/Resources.xlf @@ -0,0 +1,71 @@ + + + + + + Exception occurred while instantiating discoverer : {0} + + + + Multiple test adapters with the same uri '{0}' were found. Ignoring adapter '{1}'. Please uninstall the conflicting adapter(s) to avoid this warning. + {0} is the unique identifier of test adapter. {1} is the name of the test adapter that shares a unique identifier with a previously loaded adapter. + + + Ignoring the specified duplicate source '{0}'. + + + + An exception occurred while test discoverer '{0}' was loading tests. Exception: {1} + + + + An exception occurred while invoking executor '{0}': {1} + + + + Could not find file {0}. + + + + Host debugging is enabled. Please attach debugger to testhost process to continue. + Host, testhost are key words, it should not be localized + + + Ignoring the test executor corresponding to test discoverer {0} because the discoverer does not have the DefaultExecutorUri attribute . You might need to re-install the test adapter add-in. + + + + Failed to initialize client proxy: could not connect to test process. + + + + This operation is not allowed in the context of a non-debug run. + + + + No test discoverer is registered to perform discovery of test cases. Register a test discoverer and try again. + + + + Could not find test executor with URI '{0}'. Make sure that the test executor is installed and supports .net runtime version {1}. + {0} - Executor uri String {1}- Version - .net Version Eg:-2.0.50727.00 + + + None of the specified source(s) '{0}' is valid. Fix the above errors/warnings and then try again. + + + + , + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + No tests matched the filter because it contains one or more properties that are not valid ({0}). Specify filter expression containing valid properties ({1}) and try again. + + + + + diff --git a/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.xlf b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.xlf new file mode 100644 index 0000000000..6ed59eaa20 --- /dev/null +++ b/src/Microsoft.TestPlatform.Extensions.TrxLogger/Resources/xlf/TrxResource.xlf @@ -0,0 +1,129 @@ + + + + + + Aborted + + + + Completed + + + + Disconnected + + + + Error + + + + Failed + + + + Inconclusive + + + + In Progress + + + + Not Executed + + + + Not Runnable + + + + Passed + + + + Passed (run aborted) + + + + Pending + + + + Timeout + + + + Warning + + + + The parameter cannot be less than 0. + + + + The parameter cannot be null or empty. + + + + Cannot get free name for {0}(1),(2),... in directory {1}. Please clean up this directory. + + + + Test Settings are not specified. + + + + The active Test Settings do not define the Run Deployment Directory. + + + + The result is not associated with a test run. Use a result that was obtained from an in-progress or completed test run. + + + + The specified file/directory name '{0}' is not valid. + + + + {0}@{1} {2} + + + + Failed to attach files from: {0} +Error Details: {1}:{2} +Error Details: {1}:{2} + + + + Test '{0}' was skipped in the test run. + + + + Results File: {0} + + + + All Loaded Results + + + + Results Not in a List + + + + deployment item '{0}' + + + + deployment item '{0}' (output directory '{1}') + + + + (null) + + + + + diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.xlf new file mode 100644 index 0000000000..7a81f9a004 --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/CommonResources.xlf @@ -0,0 +1,19 @@ + + + + + + The parameter cannot be null or empty. + + + + Test run will use DLL(s) built for framework {0} and platform {1}. Following DLL(s) will not be part of run: {2} Go to {3} for more details on managing these settings. + + + + None of the provided test containers match the Platform Architecture and .Net Framework settings for the test run. Platform: {0} .Net Framework: {1}. Go to http://go.microsoft.com/fwlink/?LinkID=330428 for more details on managing these settings. + + + + + diff --git a/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.xlf b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.xlf new file mode 100644 index 0000000000..3423994591 --- /dev/null +++ b/src/Microsoft.TestPlatform.ObjectModel/Resources/xlf/Resources.xlf @@ -0,0 +1,261 @@ + + + + + + Failed + Test result for failed test + + + None + + + + Passed + Test result for passed test + + + {0,-10} {1} + + + + {0}: +{1} +{1} + + + + Test Messages: +{0} +{0} + + + + Message: {0} + + + + StackTrace: +{0} +{0} + + + + (null) + + + + Cannot register property '{0}' as value type '{1}' because it was already registered as '{2}'. + + + + Column Number + The label of the test property ColumnNumber for test case. + + + Executor Uri + The label of the test property ExecutorUri for test case. + + + Source + The label of the test property Source for test case. + + + Line Number + The label of the test property LineNumber for test case. + + + Name + The label of the test property Name for test case. + + + Computer Name + The label of the test property ComputerName for test result. + + + TestResult Display Name + The label of TestResult.DisplayName, mainly used for parameterized data tests + + + Duration + The label of the test property Duration for test result. + + + End Time + The label of the test property EndTime for test result. + + + Error Column Number + The label of the test property ErrorColumnNumber for test result. + + + Error Message + The label of the test property ErrorMessage for test result. + + + Error Stack Trace + The label of the test property ErrorStackTrace for test result. + + + Outcome + The label of the test property Outcome for test result. + + + Start Time + The label of the test property StartTime for test result. + + + Cannot find TypeConverter for type {0}. + + + + File Path + The label of the test property FilePath for test case. + + + Notification frequency need to be a positive value. + frequency for DiscoveryCriteria/TestRunCriteria needs to be a positive value + + + Id + + + + Invalid settings '{0}'. Unexpected XmlAttribute: '{1}'. + + + + Invalid settings '{0}'. Unexpected XmlElement: '{1}'. + + + + Invalid data collector settings. Expected attribute '{0}' is missing. A typical data collector setting would look like <DataCollector uri="dataCollector://Samples/SampleCollector/1.0" assemblyQualifiedName="Samples.SampleCollector.SampleDataCollector, SampleCollectors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1111111111111111" friendlyName="sampleCollector">. + + + + NotFound + Test result for not found test + + + Skipped + Test result for skipped test + + + Notification timeout must be greater than zero. + Timeout used during test discovery and execution must be greater than zero. + + + Invalid settings '{0}'. Invalid value '{1}' specified for '{2}'. + + + + The root node of the run settings must be named 'RunSettings'. + + + + Cannot specify TestCaseFilter for specific tests run. FilterCriteria is only for run with sources. + + + + The test property type '{0}' of property '{1}' is not supported. Use one of the supported property type (primitive types, uri, string, string[]) and try again. + + + + Could not find '{0}' node + Error message when the specified {0} xml node can not be found in the run settings xml document + + + FullyQualifiedName + + + + Traits + The label of the test property Traits for test case. + + + Solution directory '{0}' does not exists. Please make sure solution directory specified in runsettings exists and have read permissions for directory. + + + + The parameter cannot be null or empty. + + + + File {0} does not exist. + + + + Object must be of type {0}. + + + + Aborted + + + + Completed + + + + Disconnected + + + + Error + + + + Failed + + + + Inconclusive + + + + In Progress + + + + Not Executed + + + + Not Runnable + + + + Passed + + + + Passed (run aborted) + + + + Pending + + + + Timeout + + + + Warning + + + + Unable to read from the provided stream. Data from a stream cannot be sent unless the stream supports reading. + + + + The provided file name '{0}' contains the following invalid characters: '{1}'. + + + + The provided file name '{0}' is reserved. + + + + + diff --git a/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.xlf b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.xlf new file mode 100644 index 0000000000..1beee4dcf6 --- /dev/null +++ b/src/Microsoft.TestPlatform.Utilities/Resources/xlf/Resources.xlf @@ -0,0 +1,35 @@ + + + + + + Run settings XML does not contain "RunSettings" node. + + + + Invalid setting '{0}'. Invalid value '{1}' specified for '{2}'. + + + + Could not find 'RunSettings' node. + + + + Could not find 'RunSettings' node. + + + + An error occurred while loading the settings. Error: {0}. + + + + Incompatible Target platform settings '{0}' with system architecture '{1}'. + + + + Unexpected settings file specified. + + + + + diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.xlf b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.xlf new file mode 100644 index 0000000000..bc96246248 --- /dev/null +++ b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Resources/xlf/Resources.xlf @@ -0,0 +1,23 @@ + + + + + + The active Tests Run was aborted. + + + + The active Tests Discovery was aborted. + + + + Failed to receive message from vstest.console process + + + + vstest.console process exited abnormally + + + + + diff --git a/src/vstest.console/Resources/xlf/Resources.xlf b/src/vstest.console/Resources/xlf/Resources.xlf new file mode 100644 index 0000000000..1deac3b54b --- /dev/null +++ b/src/vstest.console/Resources/xlf/Resources.xlf @@ -0,0 +1,705 @@ + + + + + + Duplicate source {0} specified. + + + + '{0}' not found. + + + + The following Test Discovery Add-Ins are available: + + + + The following Test Execution Add-Ins are available: + + + + {0} + {Locked} + + + {0}: {1} + + + + The following Test Logger Add-Ins are available: + + + + {0} + {Locked} + + + Error: {0} + + + + , {0} + Format used to comma separate a list of values. + + + The parameter "{0}" should be provided only once. + + + + Exception occurred when instantiating extension '{0}': {1} + + + + The following Tests are available: + + + + Unrecognized parameter "{0}". + + + + The test source file "{0}" provided was not found. + + + + The Test Logger URI '{0}' is not valid. The Test Logger will be ignored. + + + + Information: {0} + + + + Warning: {0} + + + + -?|--Help|/?|/Help + Display this usage message. + Display this usage message. + + + + Copyright (c) Microsoft Corporation. All rights reserved. + + + + Microsoft (R) Test Execution Command Line Tool Version {0} + + + + --logger|/logger:<Logger Uri/FriendlyName> + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + Specify a logger for test results. For example, to log results into a + Visual Studio Test Results File (TRX) use /logger:trx. + To publish test results to Team Foundation Server, use TfsPublisher as shown below + Example: /logger:TfsPublisher; + Collection=<team project collection url>; + BuildName=<build name>; + TeamProject=<team project name> + [;Platform=<Defaults to "Any CPU">] + [;Flavor=<Defaults to "Debug">] + [;RunTitle=<title>] + + + + Description: Runs tests from the specified files. + + + + Options: + Section Header for subsequent command help listing + + + Usage: vstest.console.exe [Arguments] [Options] + + + + No test source files were specified. + + + + No arguments were specified. + + + + [TestFileNames] + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + Run tests from the specified files. Separate multiple test file names + by spaces. + Examples: mytestproject.dll + mytestproject.dll myothertestproject.exe + + + + The following Settings Providers Add-Ins are available: + + + + --Settings|/Settings:<Settings File> + Settings to use when running tests. + Settings to use when running tests. + + + + The /Settings parameter requires a settings file to be provided. + + + + The Settings file '{0}' could not be found. + + + + Test Run Failed. + + + + Test Run Successful. + + + + Argument {0} is not expected in the 'InIsolation' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /InIsolation) and try again. + + + + Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true + + + + The /UseVsixExtensions parameter requires a value. If 'true', the installed VSIX extensions (if any) will be used in the test run. If false, they will be ignored. Example: /UseVsixExtensions:true + + + + Argument {0} is not expected in the 'UseVsixExtensions' command. Specify the command indicating whether the vsix extensions should be used or skipped (Example: vstest.console.exe myTests.dll /UseVsixExtensions:true) and try again. + + + + /InIsolation + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + Runs the tests in an isolated process. This makes vstest.console.exe + process less likely to be stopped on an error in the tests, but tests + may run slower. + + + + /UseVsixExtensions + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + This makes vstest.console.exe process use or skip the VSIX extensions + installed(if any) in the test run. + Example /UseVsixExtensions:true + + + + The /BatchSize argument requires the size of the batch. Example: /BatchSize:10 + + + + Invalid batch size {0}. The batch size should be greater than zero. Example: /BatchSize:10 + + + + To run tests in the same process: + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + >vstest.console.exe tests.dll + To run tests in a separate process: + >vstest.console.exe /inIsolation tests.dll + To run tests with additional settings such as data collectors: + >vstest.console.exe tests.dll /Settings:Local.RunSettings + + + + /ListDiscoverers + Lists installed test discoverers. + Lists installed test discoverers. + + + + /ListExecutors + Lists installed test executors. + Lists installed test executors. + + + + /ListLoggers + Lists installed test loggers. + Lists installed test loggers. + + + + /ListSettingsProviders + Lists installed test settings providers. + Lists installed test settings providers. + + + + -lt|--ListTests|/lt|/ListTests:<File Name> + Lists discovered tests from the given test container. + Lists discovered tests from the given test container. + + + + Time elapsed : + + + + The /Tests argument requires one or more specific test names or their substrings. + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + Examples: /Tests:TestsMethod1, /Tests:TestMethod1,method2 + + + + A total of {0} tests were discovered but no test matches the specified selection criteria({1}). Use right value(s) and try again. + + + + , + + + + --Tests|/Tests:<Test Names> + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + Run tests with names that match the provided values. To provide multiple + values, separate them by commas. + Examples: /Tests:TestMethod1 + /Tests:TestMethod1,testMethod2 + Please verify if the console output looks good after modifiaction. + + + Using Isolation mode to run the tests as diagnostic data adapters were enabled in the runsettings. Use the /inIsolation parameter to suppress this warning. + + + + Using Isolation mode to run unit tests for Windows Store apps. Use the /InIsolation parameter to suppress this warning. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Store apps. Remove diagnostic data adapters settings from settings. + + + + {0} {1} + + + + FriendlyName: {0} + + + + Uri: {0} + + + + The Test Logger Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Executor Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Test Discovery Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + The Settings Providers Add-Ins installed through a VSIX installation are ignored. Use the /UseVsixExtensions parameter to include them, if your installation supports vsix extensions. Example: vstest.console.exe {0} /UseVsixExtensions:true + + + + SettingName: {0} + + + + Supported File Types: + + + + {0} + + + + {0}, + + + + Default Executor Uri: {0} + + + + Uri: {0} + + + + Invalid platform type:{0}. Valid platform types are x86, x64 and Arm. + + + + The /Platform argument requires the target platform type for the test run to be provided. Example: /Platform:x86 + + + + --Platform|/Platform:<Platform type> + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + Target platform architecture to be used for test execution. + Valid values are x86, x64 and ARM. + + + + Using Isolation mode to run tests as required by effective Platform:{0} and .Net Framework:{1} settings for test run. Use the /inIsolation parameter to suppress this warning. + + + + --Framework|/Framework:<Framework Version> + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + Target .Net Framework version to be used for test execution. + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + + + + The /Framework argument requires the target .Net Framework version for the test run. Example: /Framework:".NETFramework,Version=v4.6" + + + + Invalid .Net Framework version:{0}. Please give the fullname of the TargetFramework. Other supported .Net Framework versions are Framework35, Framework40 and Framework45. + + + + Could not start test run for unit tests for Windows Store app: {0}. + + + + --TestCaseFilter|/TestCaseFilter:<Expression> + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + Run tests that match the given expression. + <Expression> is of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: /TestCaseFilter:"Priority=1" + /TestCaseFilter:"(FullyQualifiedName~Nightly + |Name=MyTestMethod)" + + + + The /TestCaseFilter argument requires the filter value. + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + Filter value can be <property>=<value> type. + Examples: "Priority=1", "TestCategory=Nightly" + + + + The /TestCaseFilter argument cannot be specified with /Tests. Filtering of test cases is not applicable when tests are specified. + + + + {0} is built for {1}/{2}. The test assemblies specified in a run should have a common target .Net framework and platform. + + + + Only one app package (.appx file) can be specified for running tests. + + + + Starting test discovery, please wait... + + + + Starting test execution, please wait... + + + + Reading diagnostic data adapter settings threw an running '{0}'. All diagnostic data adapters will be skipped in this run. + + + + /EnableCodeCoverage + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + Enables data diagnostic adapter 'CodeCoverage' in the test run. Default + settings are used if not specified using settings file. + + + + Argument {0} is not expected in the 'EnableCodeCoverage' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /EnableCodeCoverage) and try again. + + + + Settings file provided do not confirm to required format. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Store apps, create app package using Windows Store app Unit Test Library project. + + + + Code coverage is not available for Windows Store apps. Code coverage analysis skipped for this test run. + + + + A total of {0} tests were discovered but some tests do not match the specified selection criteria({1}). Use right value(s) and try again. + + + + --TestAdapterPath|/TestAdapterPath + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + This makes vstest.console.exe process use custom test adapters + from a given path (if any) in the test run. + Example /TestAdapterPath:<pathToCustomAdapters> + + + + The /TestAdapterPath parameter requires a value, which is path of a location containing custom test adapters. Example: /TestAdapterPath:c:\MyCustomAdapters + + + + The path '{0}' specified in the 'TestAdapterPath' is invalid. Error: {1} + + + + The custom test adapter search path provided was not found, provide a valid path and try again. + + + + The path '{0}' specified in the 'TestAdapterPath' does not contain any test adapters, provide a valid path and try again. + + + + Could not start test run for the tests for Windows Phone app: {0}. + + + + Using Isolation mode to run unit tests for Windows Phone apps. Use the /InIsolation parameter to suppress this warning. + + + + Code coverage is not available for Windows Phone apps. Code coverage analysis skipped for this test run. + + + + Diagnostic data adapters are not supported when running unit tests for Windows Phone apps. Remove diagnostic data adapters settings from settings. + + + + App package '{0}' does not has test executor entry point. For running unit tests for Windows Phone apps, create app package using Windows Phone Unit Test App project. + + + + Using framework {0} to run the tests. Specify /Framework:{1} to suppress this warning. + + + + No test found in the specified test containers. Additionally, Microsoft Windows Store Unit test adapter does not support .appxbundle files. Create an appx (set Generate App bundle option to Never) when creating App Package and try again. + + + + --Parallel|/Parallel + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + Specifies that the tests be executed in parallel. By default up + to all available cores on the machine may be used. + The number of cores to use may be configured using a settings file. + + + + Argument {0} is not expected in the 'Parallel' command. Specify the command without the argument (Example: vstest.console.exe myTests.dll /Parallel) and try again. + + + + Cannot be null or empty + + + + --Port|/Port:<Port> + The Port for socket connection and receiving the event messages. + The Port for socket connection and receiving the event messages. + + + + The --Port|/Port argument requires the port number which is an integer. Specify the port for socket connection and receiving the event messages. + + + + Unable to find the assembly under test. Please make sure that the project is built. + + + + The Path {0} does not exist. + + + + --BuildBasePath|/BuildBasePath:<BuildBasePath> + The directory containing the temporary outputs. + The directory containing the temporary outputs. + + + + -c|--Configuration|/c|/Configuration:<Configuration> + The configuration the project is built for i.e. Debug/Release + The configuration the project is built for i.e. Debug/Release + + + + The given configuration is invalid. + + + + -o|--Output|/o|/Output:<Output> + The directory containing the binaries to run. + The directory containing the binaries to run. + + + + The BuildBasePath was not found, provide a valid path and try again. + + + + The Output path was not found, provide a valid path and try again. + + + + Additional Information Messages: + + + + Days + + + + Error Message: + + + + Test execution time: {0:0.0000} {1} + + + + Hours + + + + Could not find a test logger with URI or FriendlyName '{0}'. + + + + Minutes + + + + Seconds + + + + Stack Trace: + + + + Standard Error Messages: + + + + Standard Output Messages: + + + + + + + + Attachments: + + + + {0} + + + + No test is available in {0}. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. + + + + Failed {0} + Message which is written to the console when a test fails. + + + Passed {0} + Message which is written to the console when a test passes. + + + Skipped {0} + + + + Total tests: {0}. Passed: {1}. Failed: {2}. Skipped: {3}. + + + + Discovery failed for given sources. Exception : {0} + + + + --ParentProcessId|/ParentProcessId:<ParentProcessId> + Process Id of the Parent Process responsible for launching current process. + Process Id of the Parent Process responsible for launching current process. + + + + The --ParentProcessId|/ParentProcessId argument requires the process id which is an integer. Specify the process id of the parent process that launched this process. + + + + Arguments: + + + + --Diag|/Diag:<Path to log file> + Enable verbose logs for test platform. + Logs are written to the provided file. + Enable verbose logs for test platform. + Logs are written to the provided file. + + + + The file {0} provided is read only + + + + + From 5485035986f8e3268affbd14e39c1f357c8a0f4d Mon Sep 17 00:00:00 2001 From: Sai Krishna Vajjala Date: Thu, 20 Oct 2016 14:26:32 +0530 Subject: [PATCH 16/19] Fix timeout and the test case use of timeout --- .../Logging/InternalTestLoggerEventsTests.cs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/test/Microsoft.TestPlatform.Common.UnitTests/Logging/InternalTestLoggerEventsTests.cs b/test/Microsoft.TestPlatform.Common.UnitTests/Logging/InternalTestLoggerEventsTests.cs index f44fd3d5e4..74fbf91a0a 100644 --- a/test/Microsoft.TestPlatform.Common.UnitTests/Logging/InternalTestLoggerEventsTests.cs +++ b/test/Microsoft.TestPlatform.Common.UnitTests/Logging/InternalTestLoggerEventsTests.cs @@ -9,7 +9,6 @@ namespace TestPlatform.Common.UnitTests.Logging using Microsoft.VisualStudio.TestTools.UnitTesting; using System; using System.Threading; - using TestPlatform.Common.UnitTests.Utilities; using TestResult = Microsoft.VisualStudio.TestPlatform.ObjectModel.TestResult; [TestClass] @@ -17,6 +16,7 @@ public class InternalTestLoggerEventsBehaviors { private TestSessionMessageLogger testSessionMessageLogger; private InternalTestLoggerEvents loggerEvents; + [TestInitialize] public void Initialize() { @@ -39,7 +39,6 @@ public void RaiseMessageShouldNotThrowExceptionIfNoEventHandlersAreRegistered() } [TestMethod] - [Timeout(300)] public void RaiseMessageShouldInvokeRegisteredEventHandlerIfTestRunMessageEventArgsIsPassed() { EventWaitHandle waitHandle = new AutoResetEvent(false); @@ -59,7 +58,9 @@ public void RaiseMessageShouldInvokeRegisteredEventHandlerIfTestRunMessageEventA // Send the test mesage event. loggerEvents.RaiseMessage(new TestRunMessageEventArgs(TestMessageLevel.Informational, message)); - waitHandle.WaitOne(); + var waitSuccess = waitHandle.WaitOne(500); + Assert.IsTrue(waitSuccess, "Event must be raised within timeout."); + Assert.IsTrue(testMessageReceived); Assert.IsNotNull(eventArgs); Assert.AreEqual(message, eventArgs.Message); @@ -67,7 +68,6 @@ public void RaiseMessageShouldInvokeRegisteredEventHandlerIfTestRunMessageEventA } [TestMethod] - [Timeout(300)] public void RaiseMessageShouldInvokeRegisteredEventHandlerIfTestTestResultEventArgsIsPassed() { EventWaitHandle waitHandle = new AutoResetEvent(false); @@ -87,7 +87,9 @@ public void RaiseMessageShouldInvokeRegisteredEventHandlerIfTestTestResultEventA // Send the test result event. loggerEvents.RaiseTestResult(new TestResultEventArgs(result)); - waitHandle.WaitOne(); + var waitSuccess = waitHandle.WaitOne(500); + Assert.IsTrue(waitSuccess, "Event must be raised within timeout."); + Assert.IsTrue(testResultReceived); Assert.IsNotNull(eventArgs); Assert.AreEqual(result, eventArgs.Result); @@ -112,7 +114,6 @@ public void RaiseMessageShouldThrowExceptioIfNullTestRunMessageEventArgsIsPassed } [TestMethod] - [Timeout(300)] public void CompleteTestRunShouldInvokeRegisteredEventHandler() { bool testRunCompleteReceived = false; @@ -128,11 +129,12 @@ public void CompleteTestRunShouldInvokeRegisteredEventHandler() waitHandle.Set(); }; - // Send the test run complete event. loggerEvents.EnableEvents(); + // Send the test run complete event. loggerEvents.CompleteTestRun(null, false, false, null, null, new TimeSpan()); - waitHandle.WaitOne(); + var waitSuccess = waitHandle.WaitOne(500); + Assert.IsTrue(waitSuccess, "Event must be raised within timeout."); Assert.IsTrue(testRunCompleteReceived); Assert.IsNotNull(eventArgs); } From 7d1e589eacf397ed41fdffde707ef82d64470c69 Mon Sep 17 00:00:00 2001 From: Sarabjot Singh Date: Thu, 20 Oct 2016 19:30:36 +0530 Subject: [PATCH 17/19] Chaining the package to build.ps1 --- scripts/build.ps1 | 5 +++-- ....NET.Test.SDK.nuspec => Microsoft.NET.Test.Sdk.nuspec} | 8 ++++---- ...ET.Test.SDK.targets => Microsoft.NET.Test.Sdk.targets} | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) rename src/{Microsoft.Net.Test.SDK/Microsoft.NET.Test.SDK.nuspec => Microsoft.NET.Test.Sdk.nuspec} (68%) rename src/{Microsoft.Net.Test.SDK/Microsoft.NET.Test.SDK.targets => Microsoft.NET.Test.Sdk.targets} (98%) diff --git a/scripts/build.ps1 b/scripts/build.ps1 index ec195787e1..c4cc215782 100644 --- a/scripts/build.ps1 +++ b/scripts/build.ps1 @@ -265,10 +265,11 @@ function Create-NugetPackages $tpSrcDir = Join-Path $env:TP_ROOT_DIR "src" # Copy over the nuspecs to the staging directory - $nuspecFiles = @("TestPlatform.TranslationLayer.nuspec", "TestPlatform.ObjectModel.nuspec", "TestPlatform.TestHost.nuspec", "TestPlatform.nuspec", "TestPlatform.CLI.nuspec", "TestPlatform.Build.nuspec") + $nuspecFiles = @("TestPlatform.TranslationLayer.nuspec", "TestPlatform.ObjectModel.nuspec", "TestPlatform.TestHost.nuspec", "TestPlatform.nuspec", "TestPlatform.CLI.nuspec", "TestPlatform.Build.nuspec", "Microsoft.Net.Test.SDK.nuspec") + $targetFiles = @("Microsoft.Net.Test.SDK.targets") # Nuget pack analysis emits warnings if binaries are packaged as content. It is intentional for the below packages. $skipAnalysis = @("TestPlatform.CLI.nuspec") - foreach ($file in $nuspecFiles) { + foreach ($file in $nuspecFiles + $targetFiles) { Copy-Item $tpSrcDir\$file $stagingDir -Force } diff --git a/src/Microsoft.Net.Test.SDK/Microsoft.NET.Test.SDK.nuspec b/src/Microsoft.NET.Test.Sdk.nuspec similarity index 68% rename from src/Microsoft.Net.Test.SDK/Microsoft.NET.Test.SDK.nuspec rename to src/Microsoft.NET.Test.Sdk.nuspec index dce94261b7..8817c3c0a9 100644 --- a/src/Microsoft.Net.Test.SDK/Microsoft.NET.Test.SDK.nuspec +++ b/src/Microsoft.NET.Test.Sdk.nuspec @@ -1,7 +1,7 @@ - Microsoft.NET.Test.SDK + Microsoft.NET.Test.Sdk 1.0.0-preview The MSbuild targets and properties for building the .Net core test projects. Microsoft @@ -10,11 +10,11 @@ The MSbuild targets and properties for building the .Net core test projects. Copyright 2015 - + - - + + \ No newline at end of file diff --git a/src/Microsoft.Net.Test.SDK/Microsoft.NET.Test.SDK.targets b/src/Microsoft.NET.Test.Sdk.targets similarity index 98% rename from src/Microsoft.Net.Test.SDK/Microsoft.NET.Test.SDK.targets rename to src/Microsoft.NET.Test.Sdk.targets index 35afe924fa..87a842b4db 100644 --- a/src/Microsoft.Net.Test.SDK/Microsoft.NET.Test.SDK.targets +++ b/src/Microsoft.NET.Test.Sdk.targets @@ -1,6 +1,6 @@