Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9738

業務で使用したC#の便利ライブラリ

$
0
0

はじめに

自分のモチベーションアップも含め、Qiitaに何か投稿をしようと考えて半年が経ってしまいました。
今回のアドベントカレンダーを機に投稿していこうと思った次第です。

あまりにも知られているライブラリであるため、お役に立てなかったらすいません。
たくさん紹介したいものもありますが、今回私が紹介したいものは下記となります。

  • Selenium
  • ExcelDataReader

※SEO対策のテストや、SIer時代のテスト項目消化などに使用していました。

Selenium

昔からあるクライアントチェックライブラリの一つですが、改めて紹介をさせていただきます。

dotnetコマンドからプロジェクトを作っていきましょう。
※dotnet SDKに関してはDownload .NET (Linux, macOS, and Windows)からダウンロードをお願いします。

dotnet new nunit -o SeleniumUITest

実行すると下記のようなcsファイルができるかと思います。

UnitTest1.cs
publicclassTests{[SetUp]publicvoidSetup(){}[Test]publicvoidTest1(){Assert.Pass();}}

次に、プロジェクトにSeleniumを追加していきましょう。

dotnet add package Selenium.WebDriver
dotnet add package Selenium.WebDriver.ChromeDriver

ここから簡単にコードを追記していきます。

UnitTest1.cs
publicclassTests{privateOpenQA.Selenium.IWebDriverwebDriver=null;[SetUp]publicvoidSetup(){varoptions=newChromeOptions();// 2つのオプションを追加// 1つ目ブラウザを立ち上げない// 2つ目プライベートモードで開くoptions.AddArguments("--headless","--incognito");webDriver=newOpenQA.Selenium.Chrome.ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),options);}[Category("Assert True Test")][TestCase("https://qiita.com/nariakiraHara/items/f1b4d091ed447a283d8d","title","業務で使用したC#の便利ライブラリ - Qiita")]publicvoidTest1(stringurl,stringtagName,stringcontent){AssertTrueTest(url,tagName,content);}privatevoidAssertTrueTest(stringurl,stringtagName,stringcontent){webDriver.Navigate().GoToUrl(url);vartitleInfo=webDriver.Title;Assert.AreEqual(content,titleInfo,"タイトルを間違えています。");}[OneTimeTearDown]publicvoidDispose(){if(webDriver!=null){webDriver.Quit();webDriver.Dispose();}}}

テスト内容としては、渡されたTestCaseのUrl, tag名, コンテンツを渡します。
SeleniumからUrlにアクセスし、タグの内容と想定される結果が正しいかを検証します。
◎実際のクライアントからテストできるため便利かと

ExcelDataReader

エクセルのデータを読み込むことができるライブラリとなります。
テスト項目を作成後、読み込ませ想定される結果が合っているかを、上記Seleniumを使用して確認したりしてました。

プロジェクトを作成していきます。

dotnet new console -o ExcelReadSample

ライブラリーを入れていきます。

dotnet add package ExcelDataReader
dotnet add package ExcelDataReader.DataSet
dotnet add package System.Text.Encoding.CodePages

今回はサンプルとして下のようなExcelを作成し、Console出力してみたいと思います。
MicrosoftTeams-image (1).png

プロジェクトに"resources"フォルダを追加し、Excelを格納します。
こんな感じになりました。

Program.cs
classProgram{// 先程の画像のExcel Data.xlsxを読み込むprivatestaticreadonlystringDATA_PATH=@"resources/Data.xlsx";staticvoidMain(string[]args){Console.WriteLine("Start Excel Read");varapp=newProgram();app.Run();Console.WriteLine("End Excel Read");}publicvoidRun(){vards=ReadData(DATA_PATH);foreach(DataTabletblinds.Tables){Console.WriteLine($"シート名 {tbl.TableName}");// 1行ずつ見ていくfor(varj=0;j<tbl.Rows.Count;j++){if(j==0)continue;// 1カラムずつ見ていきますfor(vari=0;i<tbl.Columns.Count;i++){Console.Write($"{tbl.Rows[j][i]} ");}Console.WriteLine("");}}}privateDataSetReadData(stringpath){DataSetds=null;System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);try{// ファイルパスからExcelを読み込むusing(varstream=File.Open(path,FileMode.Open,FileAccess.Read)){using(varreader=ExcelReaderFactory.CreateReader(stream)){ds=reader.AsDataSet();}}}catch(Exceptionex){Console.Error.WriteLine(ex.Message);}returnds;}}

出力結果

Start Excel Read
シート名 Sheet1
1 https://qiita.com/ title Qiitaだよ 
2 https://qiita.com/ h1 はじめに 
3 https://qiita.com/ h1 僕はトムではありません 
4 https://qiita.com/ title はは 
End Excel Read

こんな感じの出力結果になります。
Excelをテストケースのように作成し、テストをSeleniumを使用してテストを実施していました。

よかったら参考にしてみてください^^


Viewing all articles
Browse latest Browse all 9738

Trending Articles