ruby require ruby-1.8 ruby-1.8.7 ruby-1.9.1

Ruby requiere ''archivo'' y ubicación relativa



require ruby-1.8 (1)

Usted no require s son relativos al directorio actual, que en su caso fue GUI_Tests/Tests . Si hiciste esto en su lugar:

cd .. spec -r upload_tool -fs Test/test_spec.rb

Tendrías que usar esto:

require ''windows_gui'' # without ''../''

La forma más común de solucionar ese problema es usar File.dirname(__FILE__) :

require File.join(File.dirname(__FILE__), ''..'', ''windows_gui'')

NOTA: en Ruby 1.9.2 se requiere cambiar sus valores predeterminados: Ruby: require vs require_relative - la mejor práctica para la solución se ejecuta en Ruby <1.9.2 y> = 1.9.2

Así que estoy escribiendo algunas pruebas rspec y me avergüenzo de mi falta de comprensión de Ruby.

Tengo una estructura de archivos que se parece a la siguiente:

  • Pruebas de GUI / Pruebas / test_spec.rb
  • Pruebas de GUI / windows_gui.rb
  • Pruebas_GI / upload_tool.rb

cuando ejecuto la especificación para el archivo test_spec.rb, requiero que se incluya el archivo upload_tool así:

spec -r ../upload_tool -fs test_spec.rb

Entonces, la herramienta upload_tool requiere windows_gui.rb, así:

require ''../windows_gui''

Mi pregunta es, ¿por qué tengo que hacer referencia a windows_gui.rb en relación con test_spec.rb (que requiere ../) en lugar de upload_tool.rb? Esto me parece mal, desearé usar el upload_tool.rb fuera del contexto de las especificaciones de prueba, lo que significa cambiar los requisitos cada vez.

Claramente me falta algo, pero si no hago referencia a la especificación de prueba, obtengo un error de archivo no encontrado.

Lo siento por ser tan ignorante aquí, pero estoy llegando con las manos vacías. Cualquier pensamiento apreciado.

cama y desayuno