Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Testing - open a testing workbook

Abierto
#10 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
csharp

Línea de trabajo

Comienza con la WorkbookFixture propuesta en el assembly ExcelDna.Testing e inspecciona los libros de trabajo de XFunctions Examples, especialmente HelpExamples.xlsx. Revisa cómo xUnit IClassFixture debe proporcionar el libro de trabajo y, a continuación, resuelve las cuestiones abiertas del issue sobre cómo localizar, abrir y cerrar los libros de trabajo de prueba. Se considera terminado cuando exista un diseño de fixture definido que permita ejecutar pruebas contra un libro de trabajo creado previamente.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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<HelpExamplesFixture>
{

    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?

Lenguaje dominante
C#
Estrellas
0
Forks
2
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Excel-DNA/DeveloperTools

Todos los issues de Excel-DNA/DeveloperTools

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.