Excel-DNA / Excel-DNA/DeveloperTools

Testing - open a testing workbook

Ouverte
#10 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
C#
Étoiles
0
Forks
2
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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?

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.