Excel-DNA / Excel-DNA/DeveloperTools

Testing - open a testing workbook

オープン
#10 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
C#
スター
0
フォーク
2
PR マージ指標
30日以内にマージされた PR はありません

説明

I think it would be nice to be able to run all the test from a class in the context of a pre-created workbook.
I'm trying to understand what the xUnit way to set this up would be.

For example, in the `XFunctions` add-in, I have some example workbooks:
https://github.com/Excel-DNA/XFunctions/tree/master/Examples
I want to make tests for the XFunctions add-in that execute in the context of one of those workbooks.

I suggest we add a `WorkbookFixture` class in the `ExcelDna.Testing` assembly that looks like this:

```
public class WorkbookFixture : IDisposable
{
public Workbook Workbook { get; }

public WorkbookFixture(string name)
{
// Look for the workbook in the test directory or somewhere close
// not sure what the path search story should be - do we allow partial paths like testbook/myBook.xlsx ?
// in practise one might want the test workbook in the test project directory, not the test output directory?
// Anyway, once we've found it we open it.
}
public Dispose() { // Close it? }
}
```

For the test code, maybe something like this could then work.

Suppose there is a file called `HelpExamples.xlsx` in a good directory.
Then the test gets a class that subclasses the WorkbookFixture, passing in the name as constructor parameter.

```
public class HelpExamplesFixture : base("HelpExamples.xlsx") {}

public class HelpExampleTests : IClassFixture
{

Workbook _wb;

public HelpExampleTests(HelpExamplesFixture fixture) { _wb = fixture.Workbook; };

[Fact]
public void CheckSomething()
{
Assert.Equal(_wb.Range["A1"], 123);
}
}
```

@Sergey-Vlasov Do you have any thoughts on how this should work?

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。