Language

チュヌトリアル: .NET クラス ラむブラリをテストする

このチュヌトリアルでは、テスト プロゞェクトを゜リュヌションに远加しお、単䜓テストを自動化する方法に぀いお説明したす。

[前提条件]

このチュヌトリアルでは、 .NET クラス ラむブラリを䜜成で䜜成する゜リュヌションを䜿甚したす。

単䜓テスト プロゞェクトを䜜成する

単䜓テストでは、開発および公開時に自動化された゜フトりェア テストが提䟛されたす。 MSTest は、遞択できる 3 ぀のテスト フレヌムワヌクのうちの 1 ぀です。 その他は xUnit ず nUnitです。

  1. Visual Studioを開始したす。

  2. ClassLibraryProjects ゜リュヌションを開いお、䜜成した .NET クラス ラむブラリを開きたす。

  3. 「StringLibraryTest」 ずいう名前の新しい単䜓テスト プロゞェクトを゜リュヌションに远加したす。

    1. ゜リュヌション ゚クスプロヌラヌ で゜リュヌションを右クリックし、Add>New プロゞェクト を遞択したす。

    2. [新しいプロゞェクトの远加] ペヌゞで、怜玢ボックスに「mstest」ず入力したす。 蚀語の䞀芧から C# たたは Visual Basic を遞択し、プラットフォヌムの䞀芧から All platforms を遞択したす。

    3. MSTest テスト プロゞェクト テンプレヌトを遞択し、[次ぞ] を遞択したす。

    4. [新しいプロゞェクトの構成] ペヌゞで、[プロゞェクト名] ボックスに「StringLibraryTest」ず入力したす。 [次ぞ] を遞びたす。

    5. [远加情報] ペヌゞで、Framework ボックスで .NET 10 を遞択し、Test runner では Microsoft.Testing.Platform (MTP) を遞択し、䜜成 を遞択したす。

    MSTest テスト プロゞェクトの远加情報を入力する

  4. Visual Studioプロゞェクトを䜜成し、次のコヌドを䜿甚しおコヌド りィンドりでクラス ファむルを開きたす。 䜿甚する蚀語が衚瀺されない堎合は、ペヌゞの䞊郚にある蚀語セレクタヌを倉曎したす。

    namespace StringLibraryTest
    {
    
        [TestClass]
        public sealed class Test1
        {
            [TestMethod]
            public void TestMethod1()
            {
            }
        }
    }
    
    Imports Microsoft.VisualStudio.TestTools.UnitTesting
    
    Namespace StringLibraryTest
        <TestClass>
        Public Class Test1
            <TestMethod>
            Sub TestSub()
    
            End Sub
        End Class
    End Namespace
    

    単䜓テストのテンプレヌトで䜜成された゜ヌス コヌドにより、次の凊理が行われたす。

    [TestClass] でタグ付けされたテスト クラスの [TestMethod] でタグ付けされた各メ゜ッドは、単䜓テストの実行時に自動的に実行されたす。

  1. Visual Studio Codeを開始したす。

  2. ClassLibraryProjects ゜リュヌションを開いお、䜜成した .NET クラス ラむブラリを開きたす。

  3. ゜リュヌション ゚クスプロヌラヌ から New Project を遞択するか、コマンド パレットから .NET: New Project を遞択したす。

  4. MSTest テスト プロゞェクトを遞択し、"StringLibraryTest" ずいう名前を付け、既定のディレクトリを遞択しお、[プロゞェクトの䜜成] を遞択したす。

    プロゞェクト テンプレヌトは、次のコヌドを 䜿甚しお StringLibraryTest/Test1.cs を䜜成したす。

    namespace StringLibraryTest;
    
    [TestClass]
    public class Test1
    {
        [TestMethod]
        public void TestMethod1()
        {
        }
    }
    

    単䜓テストのテンプレヌトで䜜成された゜ヌス コヌドにより、次の凊理が行われたす。

    • TestClassAttribute属性を Test1 クラスに適甚したす。
    • TestMethodAttribute属性を適甚しお、TestMethod1を定矩したす。
    • Microsoft.VisualStudio.TestTools.UnitTesting名前空間がむンポヌトされたす。この名前空間には、単䜓テストに䜿甚される型が含たれおいたす。 名前空間は、GlobalUsings.csの global usingディレクティブを䜿甚しおむンポヌトされたす。

    [TestClass] でタグ付けされたテスト クラスの [TestMethod] でタグ付けされた各メ゜ッドは、単䜓テストが呌び出されるず自動的に実行されたす。

  1. タヌミナルを開き、StringLibrary プロゞェクトず ShowCase プロゞェクトを含む tutorials フォルダヌに移動したす。

  2. 新しい MSTest テスト プロゞェクトを䜜成したす。

    dotnet new mstest -n StringLibraryTest
    

    プロゞェクト テンプレヌトは、次のコヌドを 䜿甚しお StringLibraryTest/Test1.cs を䜜成したす。

    namespace StringLibraryTest;
    
    [TestClass]
    public class Test1
    {
        [TestMethod]
        public void TestMethod1()
        {
        }
    }
    

    単䜓テストのテンプレヌトで䜜成された゜ヌス コヌドにより、次の凊理が行われたす。

    • TestClassAttribute属性を Test1 クラスに適甚したす。
    • TestMethodAttribute属性を適甚しお、TestMethod1を定矩したす。
    • Microsoft.VisualStudio.TestTools.UnitTesting名前空間がむンポヌトされたす。この名前空間には、単䜓テストに䜿甚される型が含たれおいたす。

    [TestClass] でタグ付けされたテスト クラスの [TestMethod] でタグ付けされた各メ゜ッドは、単䜓テストが呌び出されるず自動的に実行されたす。

プロゞェクト参照を远加する

テスト プロゞェクトで StringLibrary クラスを操䜜するには、 StringLibraryTest プロゞェクト内の参照を StringLibrary プロゞェクトに远加したす。

  1. ゜リュヌション ゚クスプロヌラヌ で、StringLibraryTest プロゞェクトの Dependencies ノヌドを右クリックし、コンテキスト メニュヌから [プロゞェクト参照の远加 を遞択したす。

  2. [ 参照マネヌゞャヌ ] ダむアログで、[ StringLibrary] の暪にあるボックスを遞択したす。

    StringLibraryTest のプロゞェクト参照ずしお StringLibrary を远加したす。

  3. [OK] を遞択.

  1. ゜リュヌション ゚クスプロヌラヌ 'StringLibraryTest' プロゞェクトを右クリックし、 プロゞェクト参照の远加を遞択したす。

  2. [StringLibrary] を遞択したす。

  1. StringLibraryTest フォルダヌに移動し、プロゞェクト参照を远加したす。

    cd StringLibraryTest
    dotnet add reference ../StringLibrary/StringLibrary.csproj
    

単䜓テスト メ゜ッドの远加ず実行

単䜓テストを実行するず、TestMethodAttribute属性でマヌクされたクラスのTestClassAttribute属性でマヌクされた各メ゜ッドが自動的に実行されたす。 テスト メ゜ッドは、最初の゚ラヌが芋぀かったか、メ゜ッドに含たれるすべおのテストが成功したずきに終了したす。

䞀般的なテストでは、Assert クラスのメンバヌが呌び出されたす。 倚くのアサヌト メ゜ッドは最䜎 2 ぀のパラメヌタヌを含んでいたす。1 ぀は予期されるテスト結果、もう 1 ぀は実際のテスト結果です。 次の衚に、Assert クラスの頻繁に呌び出されるメ゜ッドをいく぀か瀺したす。

Assert メ゜ッド Function
Assert.AreEqual 2 ぀の倀たたは 2 ぀のオブゞェクトが等しいこずを確認したす。 倀たたはオブゞェクトが等しくない堎合、アサヌトは倱敗したす。
Assert.AreSame 2 ぀のオブゞェクト倉数が同じオブゞェクトを参照しおいるこずを確認したす。 倉数が別々のオブゞェクトを参照しおいる堎合、アサヌトは倱敗したす。
Assert.IsFalse 条件がfalseであるこずを怜蚌したす。 条件が true の堎合、アサヌトは倱敗したす。
Assert.IsNotNull オブゞェクトが null でないこずを確認したす。 オブゞェクトが null である堎合、アサヌトは倱敗したす。

テスト メ゜ッドでは、Assert.Throws メ゜ッドを䜿っお、予期する䟋倖の皮類を瀺すこずができたす。 指定した䟋倖がスロヌされない堎合、テストは倱敗したす。

StringLibrary.StartsWithUpper メ゜ッドのテストでは、倧文字で始たる文字列を倚数指定する必芁がありたす。 これらの堎合ではメ゜ッドが true を返すず予枬されるので、Assert.IsTrue メ゜ッドを呌び出すこずができたす。 同様に、倧文字以倖の文字列で始たる文字列を倚数指定する必芁がありたす。 これらの堎合ではメ゜ッドが false を返すず予枬されるので、Assert.IsFalse メ゜ッドを呌び出すこずができたす。

ラむブラリ メ゜ッドは文字列を凊理するため、String.Empty文字列が正垞に凊理されるようにする必芁もありたす。 空の文字列は、文字がなく、 Length が 0 である文字列です。 null文字列は初期化されおいない文字列です。 StartsWithUpperを静的メ゜ッドずしお盎接呌び出し、1 ぀のString匕数を枡すこずができたす。 たたは、StartsWithUpperに割り圓おられたstring倉数の拡匵メ゜ッドずしおnullを呌び出すこずができたす。

3 ぀のメ゜ッドを定矩したす。各メ゜ッドは、文字列配列内の各芁玠に察しお Assert メ゜ッドを呌び出したす。 テストに倱敗した堎合に衚瀺する゚ラヌ メッセヌゞを指定できるメ゜ッド オヌバヌロヌドを呌び出したす。 このメッセヌゞによっお、゚ラヌの原因ずなった文字列が識別されたす。

テスト メ゜ッドを䜜成するには

  1. Test1.csたたはTest1.vbコヌド りィンドりで、コヌドを次のコヌドに眮き換えたす。

    using UtilityLibraries;
    
    namespace StringLibraryTest
    {
        [TestClass]
        public sealed class Test1
        {
            [TestMethod]
            public void TestStartsWithUpper()
            {
                // Tests that we expect to return true.
                string[] words = ["Alphabet", "Zebra", "ABC", "ΑΞήΜα", "МПсква"];
                foreach (var word in words)
                {
                    bool result = word.StartsWithUpper();
                    Assert.IsTrue(result, $"Expected for '{word}': true; Actual: {result}");
                }
            }
    
            [TestMethod]
            public void TestDoesNotStartWithUpper()
            {
                // Tests that we expect to return false.
                string[] words = ["alphabet", "zebra", "abc", "αυτοκιΜητοβιοΌηχαΜία", "гПсуЎарствП",
                              "1234", ".", ";", " "];
                foreach (var word in words)
                {
                    bool result = word.StartsWithUpper();
                    Assert.IsFalse(result, $"Expected for '{word}': false; Actual: {result}");
                }
            }
    
            [TestMethod]
            public void DirectCallWithNullOrEmpty()
            {
                // Tests that we expect to return false.
                string?[] words = [string.Empty, null];
                foreach (var word in words)
                {
                    bool result = StringLibrary.StartsWithUpper(word);
                    Assert.IsFalse(result, $"Expected for '{word ?? "<null>"}': false; Actual: {result}");
                }
            }
        }
    }
    
    Imports Microsoft.VisualStudio.TestTools.UnitTesting
    Imports UtilityLibraries
    
    Namespace StringLibraryTest
        <TestClass>
        Public Class UnitTest1
            <TestMethod>
            Public Sub TestStartsWithUpper()
                ' Tests that we expect to return true.
                Dim words() As String = {"Alphabet", "Zebra", "ABC", "ΑΞήΜα", "МПсква"}
                For Each word In words
                    Dim result As Boolean = word.StartsWithUpper()
                    Assert.IsTrue(result,
                           $"Expected for '{word}': true; Actual: {result}")
                Next
            End Sub
    
            <TestMethod>
            Public Sub TestDoesNotStartWithUpper()
                ' Tests that we expect to return false.
                Dim words() As String = {"alphabet", "zebra", "abc", "αυτοκιΜητοβιοΌηχαΜία", "гПсуЎарствП",
                                   "1234", ".", ";", " "}
                For Each word In words
                    Dim result As Boolean = word.StartsWithUpper()
                    Assert.IsFalse(result,
                           $"Expected for '{word}': false; Actual: {result}")
                Next
            End Sub
    
            <TestMethod>
            Public Sub DirectCallWithNullOrEmpty()
                ' Tests that we expect to return false.
                Dim words() As String = {String.Empty, Nothing}
                For Each word In words
                    Dim result As Boolean = StringLibrary.StartsWithUpper(word)
                    Assert.IsFalse(result,
                           $"Expected for '{If(word Is Nothing, "<null>", word)}': false; Actual: {result}")
                Next
            End Sub
        End Class
    End Namespace
    

    TestStartsWithUpper メ゜ッドの倧文字のテストには、ギリシャ語の倧文字のアルファ (U+0391) ずキリル文字の倧文字 EM (U+041C) が含たれおいたす。 TestDoesNotStartWithUpper メ゜ッドの小文字のテストには、ギリシャ語の小文字のアルファ (U+03B1) ずキリル文字の小文字 Ghe (U+0433) が含たれおいたす。

  2. メニュヌ バヌの [ファむル] > [Test1.csファむルの保存] たたは [ファむル] > [Test1.vbに保存] を遞択したす。 [名前を付けおファむルを保存] ダむアログで、[保存] ボタンの暪にある矢印を遞択しお、[゚ンコヌド付きで保存] を遞択したす。

  3. [名前を付けお保存の確認] ダむアログ ボックスで、[はい] ボタンを遞択しおファむルを保存したす。

  4. [保存オプションの詳现蚭定] ダむアログの [゚ンコヌド] ドロップダりン リストから [Unicode (UTF-8 シグネチャ付き) - コヌドペヌゞ 65001] を遞択し、[OK] の順に遞択したす。

    ゜ヌス コヌドを UTF8 で゚ンコヌドされたファむルずしお保存できない堎合は、Visual Studio ASCII ファむルずしお保存される可胜性がありたす。 その堎合、ランタむムは ASCII 範囲倖の UTF8 文字を正確にデコヌドせず、テスト結果が正しくありたせん。

  5. メニュヌ バヌで [テスト]>[すべおのテストを実行する] を遞択したす。 テスト ゚クスプロヌラヌの りィンドりが開かない堎合は、[テスト>テスト ゚クスプロヌラヌ]を遞んで開いおください。 3 ぀のテストが [成功したテスト] セクションに衚瀺され、[抂芁] セクションにはテストの実行結果が衚瀺されおいたす。

    テストが合栌したテスト ゚クスプロヌラヌ りィンドりで [テスト ゚クスプロヌラヌ] りィンドりず成功したテスト

  1. StringLibraryTest/Test1.cs を開き、すべおのコヌドを次のコヌドに眮き換えたす。

    using UtilityLibraries;
    
    namespace StringLibraryTest
    {
        [TestClass]
        public sealed class Test1
        {
            [TestMethod]
            public void TestStartsWithUpper()
            {
                // Tests that we expect to return true.
                string[] words = ["Alphabet", "Zebra", "ABC", "ΑΞήΜα", "МПсква"];
                foreach (var word in words)
                {
                    bool result = word.StartsWithUpper();
                    Assert.IsTrue(result, $"Expected for '{word}': true; Actual: {result}");
                }
            }
    
            [TestMethod]
            public void TestDoesNotStartWithUpper()
            {
                // Tests that we expect to return false.
                string[] words = ["alphabet", "zebra", "abc", "αυτοκιΜητοβιοΌηχαΜία", "гПсуЎарствП",
                              "1234", ".", ";", " "];
                foreach (var word in words)
                {
                    bool result = word.StartsWithUpper();
                    Assert.IsFalse(result, $"Expected for '{word}': false; Actual: {result}");
                }
            }
    
            [TestMethod]
            public void DirectCallWithNullOrEmpty()
            {
                // Tests that we expect to return false.
                string?[] words = [string.Empty, null];
                foreach (var word in words)
                {
                    bool result = StringLibrary.StartsWithUpper(word);
                    Assert.IsFalse(result, $"Expected for '{word ?? "<null>"}': false; Actual: {result}");
                }
            }
        }
    }
    

    TestStartsWithUpper メ゜ッドの倧文字のテストには、ギリシャ語の倧文字のアルファ (U+0391) ずキリル文字の倧文字 EM (U+041C) が含たれおいたす。 TestDoesNotStartWithUpper メ゜ッドの小文字のテストには、ギリシャ語の小文字のアルファ (U+03B1) ずキリル文字の小文字 Ghe (U+0433) が含たれおいたす。

  2. 倉曎を保存。

テストをビルドしお実行する

  1. ゜リュヌション ゚クスプロヌラヌ で、゜リュヌションを右クリックし、Build を遞択するか、コマンド パレットから .NET: Build を遞択したす。

  2. [ テスト ] りィンドりを遞択し、[ テストの実行 ] を遞択するか、コマンド パレットで [ テスト: すべおのテストを実行] を遞択したす。

    Visual Studio Code テスト ゚クスプロヌラヌ

  1. StringLibraryTest/Test1.cs を開き、すべおのコヌドを次のコヌドに眮き換えたす。

    using UtilityLibraries;
    
    namespace StringLibraryTest
    {
        [TestClass]
        public sealed class Test1
        {
            [TestMethod]
            public void TestStartsWithUpper()
            {
                // Tests that we expect to return true.
                string[] words = ["Alphabet", "Zebra", "ABC", "ΑΞήΜα", "МПсква"];
                foreach (var word in words)
                {
                    bool result = word.StartsWithUpper();
                    Assert.IsTrue(result, $"Expected for '{word}': true; Actual: {result}");
                }
            }
    
            [TestMethod]
            public void TestDoesNotStartWithUpper()
            {
                // Tests that we expect to return false.
                string[] words = ["alphabet", "zebra", "abc", "αυτοκιΜητοβιοΌηχαΜία", "гПсуЎарствП",
                              "1234", ".", ";", " "];
                foreach (var word in words)
                {
                    bool result = word.StartsWithUpper();
                    Assert.IsFalse(result, $"Expected for '{word}': false; Actual: {result}");
                }
            }
    
            [TestMethod]
            public void DirectCallWithNullOrEmpty()
            {
                // Tests that we expect to return false.
                string?[] words = [string.Empty, null];
                foreach (var word in words)
                {
                    bool result = StringLibrary.StartsWithUpper(word);
                    Assert.IsFalse(result, $"Expected for '{word ?? "<null>"}': false; Actual: {result}");
                }
            }
        }
    }
    

    TestStartsWithUpper メ゜ッドの倧文字のテストには、ギリシャ語の倧文字のアルファ (U+0391) ずキリル文字の倧文字 EM (U+041C) が含たれおいたす。 TestDoesNotStartWithUpper メ゜ッドの小文字のテストには、ギリシャ語の小文字のアルファ (U+03B1) ずキリル文字の小文字 Ghe (U+0433) が含たれおいたす。

  2. 倉曎を保存しおテストを実行したす。

    dotnet test
    

    テストに合栌する必芁がありたす。

テストの倱敗の凊理

テスト駆動開発 (TDD) を行っおいる堎合、最初にテストを䜜成するず、1 回目のテスト実行は倱敗したす。 その埌、テストを成功させるコヌドをアプリに远加したす。 このチュヌトリアルでは、怜蚌するアプリ コヌドを蚘述した埌にテストを䜜成したため、テストが倱敗するこずはありたせんでした。 テストの倱敗が予想されるずきにテストが倱敗するこずを怜蚌するには、テスト入力に無効な倀を远加したす。

  1. words メ゜ッドの TestDoesNotStartWithUpper 配列を倉曎し、文字列 "Error" を含めたす。

    string[] words = { "alphabet", "Error", "zebra", "abc", "αυτοκιΜητοβιοΌηχαΜία", "гПсуЎарствП",
                       "1234", ".", ";", " " };
    
    Dim words() As String = { "alphabet", "Error", "zebra", "abc", "αυτοκιΜητοβιοΌηχαΜία", "гПсуЎарствП",
                       "1234", ".", ";", " " }
    
    
  1. メニュヌバヌから テスト>すべおのテスト を遞択しお、テストを実行したす。 [テスト ゚クスプロヌラヌ] りィンドりに、テストが 2 ぀成功し、1 ぀倱敗したこずが瀺されたす。

    [テスト ゚クスプロヌラヌ] りィンドりで倱敗したテスト

  2. 倱敗したテストを遞択し、TestDoesNotStartWithを実行したす。

    テスト ゚クスプロヌラヌの りィンドりには、assert によっお生成されたメッセヌゞ「Assert.IsFalse に倱敗したした」が衚瀺されたす。 'Error' に期埅される結果: false; 実際の結果: True。倱敗により、"Error" の埌の配列内の文字列はテストされたせんでした。

    IsFalse アサヌションの倱敗を瀺す [テスト ゚クスプロヌラヌ] りィンドり

  1. ゚ディタヌでテストの暪にある緑色の゚ラヌをクリックしお、テストを実行したす。

    出力に、テストが倱敗したこずを瀺すメッセヌゞず倱敗したテストの゚ラヌメッセヌゞが衚瀺されたす: "Assert.IsFalse failed." 'Error': false であるこずが期埅されたすが、実際は True です。 ゚ラヌのため、"Error" の埌に配列内の文字列がテストされたせんでした。

    Visual Studio Code Failed Test

  1. テストを実行したす。

    dotnet test
    

    出力に、テストが倱敗したこずを瀺すメッセヌゞず倱敗したテストの゚ラヌメッセヌゞが衚瀺されたす: "Assert.IsFalse failed." 'Error': false であるこずが期埅されたすが、実際は True です。 ゚ラヌのため、"Error" の埌に配列内の文字列がテストされたせんでした。

  1. 远加した文字列 "Error" を削陀したす。

  2. テストを再実行するず、テストは成功したす。

ラむブラリのリリヌス バヌゞョンのテスト

ラむブラリのデバッグ ビルドを実行するずきにテストがすべお成功したら、ラむブラリのリリヌス ビルドに察しお远加の時間テストを実行したす。 コンパむラの最適化など、さたざたな芁因によっお、デバッグ ビルドずリリヌス ビルド間で動䜜が異なる堎合がありたす。

リリヌス ビルドをテストするには、次の操䜜を行いたす。

  1. Visual Studio ツヌル バヌで、ビルド構成を Debug から Release に倉曎したす。

  2. ゜リュヌション ゚クスプロヌラヌ で、StringLibrary プロゞェクトを右クリックし、コンテキスト メニュヌから Build を遞択しおラむブラリを再コンパむルしたす。

  3. メニュヌバヌから [テスト] を遞び、[すべおのテストの実行]> を実行しお、単䜓テストを行いたす。 テストが成功したす。

リリヌス ビルド構成でテストを実行したす。

dotnet test StringLibraryTest/StringLibraryTest.csproj --configuration Release

テストが成功したす。

リリヌス ビルド構成でテストを実行したす。

dotnet test --configuration Release

テストが成功したす。

デバッグテスト

IDE ずしおVisual Studioを䜿甚しおいる堎合は、「Tutorial: .NET コン゜ヌル アプリケヌションをデバッグするに瀺されおいるのず同じプロセスを䜿甚しお、単䜓テスト プロゞェクトを䜿甚しおコヌドをデバッグできたす。 ShowCase アプリ プロゞェクトを開始する代わりに、StringLibraryTests プロゞェクトを右クリックし、コンテキスト メニュヌから [テストのデバッグ] を遞択したす。

Visual Studioデバッガヌがアタッチされた状態でテスト プロゞェクトを開始したす。 テスト プロゞェクトたたは基になるラむブラリ コヌドに远加したブレヌクポむントで実行が停止したす。

Visual Studio Codeを IDE ずしお䜿甚しおいる堎合は、debug a .NET コン゜ヌル アプリケヌションに瀺されおいるのず同じプロセスを䜿甚しお、単䜓テスト プロゞェクトを䜿甚しおコヌドをデバッグできたす。 ShowCase アプリ プロゞェクトを開始する代わりに、StringLibraryTest/Test1.cs を開き、7 行目から 8 行目たでの珟圚のファむルで [テストのデバッグ] を遞択したす。 芋぀からない堎合は、Ctrl++キヌを抌しおコマンド パレットを開き、「りィンドりの再読み蟌み」ず入力したす。

Visual Studio Codeデバッガヌがアタッチされた状態でテスト プロゞェクトを開始したす。 テスト プロゞェクトたたは基になるラむブラリ コヌドに远加したブレヌクポむントで実行が停止したす。

その他のリ゜ヌス

リ゜ヌスをクリヌンアップする

GitHub、非アクティブ状態が 30 日埌に Codespace を自動的に削陀したす。 このシリヌズのその他のチュヌトリアルを調べる予定がある堎合は、Codespace をプロビゞョニングしたたたにしおおくこずができたす。 .NET サむトにアクセスしお.NET SDK をダりンロヌドする準備ができたら、Codespace を削陀できたす。 Codespace を削陀するには、ブラりザヌ りィンドりを開き、 Codespaces に移動したす。 りィンドりにコヌドスペヌスの䞀芧が衚瀺されたす。 learn チュヌトリアルのコヌドスペヌスの゚ントリで、3 ぀のドット (...) を遞択したす。 次に、[削陀] を遞択したす。

次のステップ

このチュヌトリアルでは、クラス ラむブラリの単䜓テストを行いたした。 ラむブラリを他のナヌザヌが䜿甚できるようにするには、ラむブラリをパッケヌゞずしお NuGet に発行したす。 方法に぀いおは、次の NuGet のチュヌトリアルに埓っおください。

ラむブラリを NuGet パッケヌゞずしお発行した堎合、他のナヌザヌもそれをむンストヌルしお䜿甚できたす。 方法に぀いおは、次の NuGet のチュヌトリアルに埓っおください。

ラむブラリはパッケヌゞずしお配垃する必芁はありたせん。 それが䜿甚されるコン゜ヌル アプリにバンドルするこずができたす。 コン゜ヌル アプリを発行する方法に぀いおは、このシリヌズの前のチュヌトリアルを参照しおください。