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