Visual Studio 2008でプログラムをデバッグします。問題は、引数を取得しないと終了することです。これは、メインメソッドからのものです。
if (args == null || args.Length != 2 || args[0].ToUpper().Trim() != "RM")
{
Console.WriteLine("RM must be executed by the RSM.");
Console.WriteLine("Press any key to exit program...");
Console.Read();
Environment.Exit(-1);
}
私はそれをコメントアウトしたくはありませんし、それからコンパイル時に元に戻りたいです。デバッグ時に引数を指定してプログラムを起動するにはどうすればよいですか?これは、スタートアッププロジェクトとして設定されます。
Project-><Projectname> Properties
に移動します。次に、[Debug
]タブをクリックし、Command line arguments
というテキストボックスに引数を入力します。
directives を次のように使用することをお勧めします。
static void Main(string[] args)
{
#if DEBUG
args = new[] { "A" };
#endif
Console.WriteLine(args[0]);
}
幸運を!
私の提案は、単体テストを使用することです。
アプリケーションで_Program.cs
_で次のスイッチを実行します。
_#if DEBUG
public class Program
#else
class Program
#endif
_
static Main(string[] args)
についても同じです。
または、代わりに Friend Assemblies を追加して使用します
_[Assembly: InternalsVisibleTo("TestAssembly")]
_
_AssemblyInfo.cs
_に。
次に、単体テストプロジェクトと、次のようなテストを作成します。
_[TestClass]
public class TestApplication
{
[TestMethod]
public void TestMyArgument()
{
using (var sw = new StringWriter())
{
Console.SetOut(sw); // this makes any Console.Writes etc go to sw
Program.Main(new[] { "argument" });
var result = sw.ToString();
Assert.AreEqual("expected", result);
}
}
}
_
このようにして、異なる方法をチェックするたびにコードを編集したり、メニュー設定を変更したりすることなく、自動化された方法で複数の引数入力をテストできます。
Visual Studio Codeの場合:
launch.json
ファイル「引数」:[「引数」、「別の引数」]、