"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo configurar el directorio de trabajo para sus pruebas de Go?

¿Cómo configurar el directorio de trabajo para sus pruebas de Go?

Publicado el 2024-11-17
Navegar:224

How to Set the Working Directory for Your Go Tests?

Directorio de trabajo en las pruebas de Go

En Go, es común colocar archivos de configuración en el directorio de trabajo y hacer referencia a ellos en el código. Sin embargo, es posible que las pruebas unitarias no encuentren estos archivos si el entorno de prueba no coincide con el de producción.

Para especificar un directorio de trabajo para sus pruebas de Go, explore la siguiente solución:

Considere usando la función Caller del paquete de tiempo de ejecución. La persona que llama toma el archivo fuente de prueba actual y devuelve su ruta. Esta ruta se puede utilizar para configurar el directorio de trabajo para la prueba:

package sample

import (
    "testing"
    "runtime"
    "os"
)

func TestGetDirectory(t *testing.T) {
    _, filename, _, _ := runtime.Caller(0)
    dir := filepath.Dir(filename)
    os.Chdir(dir)
    // Run tests using configuration files in the modified working directory
}

Al utilizar Caller, puede obtener la ruta al archivo fuente de prueba actual y configurar el directorio de trabajo en consecuencia. Esto permite que sus pruebas ubiquen archivos de configuración en el mismo directorio que el código de prueba, lo que debería resolver los errores de archivo no encontrado.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3