1

C# で Excel データ ソースからデータをインポートして、Nunit でいくつかのクラスをテストする必要があります。ガイドとなる役立つリソースが見つかりませんでした。解決策はありますか? Nunitでこのテストを検討してください

[Test]
[TestCase(new[] { -4, -3, -3, -2, -1, 0, 1, 2, 2, 3, 4 }, 
          new []{1, 0, 1, 0,1, 0, 1, 1, 0, 1, 0})]
public void YourTest(int[] given, int[] expected)  
{ 
///some code
} 

Excel からデータを読み取ります。Excel ファイルが 1 つある場合、指定された値を最初の列に、期待値を 2 番目の列に入力します。

column1(in Excel)  column2(in Excel)
-4                      1
-3                      0
-3                      1
-2                      0
-1                      1
0                       0
1                       1
2                       1 
2                       0
3                       1
4                       0

列1に数式を適用する必要があり、数式の結果が列2に表示され、Excelからテストクラスにコピーしたくないため、Excelでテストしたい理由。

MsTest には次のものがあります。

[TestMethod]
  [Owner("Name")]
  [TestProperty("TestCategory", "Developer"),
      DataSource("Microsoft.ACE.OLEDB.12.0",
     "Data Source=C:/Sheets/DataSheet.xlsx;Extended Properties=Excel 12.0;",
     "[Sheet1$]",
     DataAccessMethod.Sequential)]

Nunitでも同じことができますか、それともシミュレートする必要がありますか? どのように単純化できますか?[Setup] セクションまたは [TestMethod] で

4

2 に答える 2

0

あなたの質問が「Excel からデータを読み取る方法」であり、フォーマットを気にしない場合 (つまり、データのみが必要な場合) は、おそらく OleDb が最適です。これは、Excel からのデータ取得をコーディングする最も迅速で簡単な方法に関するものです。

簡単なチュートリアルについては、こちらをご覧ください。必要なものはすべて提供されるはずです。

それがどのように機能するかを理解したら、問題が発生した場合は、このサイトに役立つ回答がたくさんあります.

于 2012-11-19T21:24:33.187 に答える
0

EPPlusを使用すると、次のような Excel ファイルを簡単に読み取ることができます。

var ep = new ExcelPackage(new FileInfo("c:\\path-to-excel\\data.xslx"));
ExcelWorksheet ws = ep.Workbook.Worksheets["Sheet1"];

// first row is column name, array indexer goes from 1 
for (int i = 2; i < ws.Dimension.End.Row; i++)
{
  int given = (int)ws.Cells[i, 1].Value;
  int expected = (int)ws.Cells[i, 2].Value;
  YourTest(given, expected);
}
于 2012-11-19T21:29:34.057 に答える