今回の手順には、事前準備が必要です。
簡単に言うと、MSTest というテストを実行する環境が必要ということです。
■ Visual Studio Code
Visual Studio Code で環境を用意する手順です。
Visual Studio でもよいのですが、この環境構築の項目を読み飛ばしていない人は Visual Studio よりも Visual Studio Code が良いと思います。
Visual Studio Code をインストール
拡張機能のインストール
ソリューション(プログラム)の開き方
GitHub Copilot の準備
これはいいサイトが見つからなかったので頑張ってください。
我々のようなものは、すでに使い始めているので、Visual Studio Code などでサインインする手順ならわかっても、アカウント設定等はもうわからなくなってしまっています。自身が設定した時と変わっているはずですし。
頑張ってください。 docs.github.com
■ テストを書いてもらう
GitHub Copilot にテストを書いてもらいます。テスト対象のソースコードファイルを開いて、GitHub Copilot にこういうだけです。
/tests mstest


テストを書いてくれました。命名ルールだとかは気にしなくてよいでしょう。そんなものは後で変えればいい。
動けばいいのです。動けば。
■ テストプロジェクトにクラスを追加
GitHub Copilot が書いてくれたコードをコピー&ペーストで貼り付けるファイルを作ります。
ファイル名は、GitHub Copilot が書いてくれたクラス名に .cs という拡張子を追加したものです。


生まれたファイルに GitHub Copilot が書いてくれたコードを貼り付け。
using Microsoft.VisualStudio.TestTools.UnitTesting; using Implem.Libraries.Utilities; using System.Text.RegularExpressions; using System.Linq; namespace Implem.Libraries.Utilities.Tests { [TestClass] public class RegexesTest { [TestMethod] public void TestRegexFirst_MatchFound() { string input = "Hello World"; string pattern = "World"; string result = input.RegexFirst(pattern); Assert.AreEqual("World", result); } [TestMethod] public void TestRegexFirst_NoMatch() { string input = "Hello World"; string pattern = "Universe"; string result = input.RegexFirst(pattern); Assert.AreEqual(string.Empty, result); } [TestMethod] public void TestRegexExists_MatchFound() { string input = "Hello World"; string pattern = "World"; bool result = input.RegexExists(pattern); Assert.IsTrue(result); } [TestMethod] public void TestRegexExists_NoMatch() { string input = "Hello World"; string pattern = "Universe"; bool result = input.RegexExists(pattern); Assert.IsFalse(result); } [TestMethod] public void TestRegexMatches_MatchFound() { string input = "Hello World"; string pattern = "World"; var matches = input.RegexMatches(pattern); Assert.AreEqual(1, matches.Count); Assert.AreEqual("World", matches[0].Value); } [TestMethod] public void TestRegexMatches_NoMatch() { string input = "Hello World"; string pattern = "Universe"; var matches = input.RegexMatches(pattern); Assert.AreEqual(0, matches.Count); } [TestMethod] public void TestRegexLike_MatchFound() { string input = "Hello World"; string pattern = "world"; var matches = input.RegexLike(pattern); Assert.AreEqual(1, matches.Count); Assert.AreEqual("World", matches[0].Value); } [TestMethod] public void TestRegexLike_NoMatch() { string input = "Hello World"; string pattern = "universe"; var matches = input.RegexLike(pattern); Assert.AreEqual(0, matches.Count); } [TestMethod] public void TestRegexValues_MatchFound() { string input = "Hello World"; string pattern = "World"; var values = input.RegexValues(pattern).ToList(); Assert.AreEqual(1, values.Count); Assert.AreEqual("World", values[0]); } [TestMethod] public void TestRegexValues_NoMatch() { string input = "Hello World"; string pattern = "Universe"; var values = input.RegexValues(pattern).ToList(); Assert.AreEqual(0, values.Count); } } }
■ テスト実行
ビルドして

テスト実行


緑なのでテスト成功です。

■ あとは PR
テストが書けたら、後はプルリクエストをするだけです。
■ さあ
さあ君もテストを書いてプルリクエストをしてみよう!