| File: Processors\ResponseFileArgumentProcessor.cs | Web Access |
| Project: src\vstest\src\vstest.console\vstest.console.csproj (vstest.console) |
// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using System; using CommandLineResources = Microsoft.VisualStudio.TestPlatform.CommandLine.Resources.Resources; namespace Microsoft.VisualStudio.TestPlatform.CommandLine.Processors; /// <summary> /// An argument processor that allows the user to specify additional arguments from a response file. /// for test run. /// </summary> internal class ResponseFileArgumentProcessor : IArgumentProcessor { /// <summary> /// The name of the command line argument that the OutputArgumentExecutor handles. /// </summary> public const string CommandName = "@"; private Lazy<IArgumentProcessorCapabilities>? _metadata; /// <summary> /// Gets the metadata. /// </summary> public Lazy<IArgumentProcessorCapabilities> Metadata => _metadata ??= new Lazy<IArgumentProcessorCapabilities>(() => new ResponseFileArgumentProcessorCapabilities()); /// <summary> /// Gets or sets the executor. /// </summary> /// <remarks> /// As this manipulates the command line arguments themselves, this has no executor. /// </remarks> public Lazy<IArgumentExecutor>? Executor { get; set; } } internal class ResponseFileArgumentProcessorCapabilities : BaseArgumentProcessorCapabilities { public override string CommandName => ResponseFileArgumentProcessor.CommandName; public override bool AllowMultiple => true; public override bool IsAction => false; public override bool IsSpecialCommand => true; public override ArgumentProcessorPriority Priority => ArgumentProcessorPriority.Normal; public override string HelpContentResourceName => CommandLineResources.ResponseFileArgumentHelp; public override HelpContentPriority HelpPriority => HelpContentPriority.ResponseFileArgumentProcessorHelpPriority; }