Короткое имя файла (8.3 имя файла) против длинного имени файла для путей в Ruby - PullRequest
0 голосов
/ 12 сентября 2018

Я работаю над набором тестов, который также сравнивает множество путей, например что-то вроде этого:

expect(all_classes).to contain_exactly(
  File.expand_path("lib/#{plugin_info.actions_path}/#{plugin_name}_action.rb"),
  File.expand_path("lib/#{plugin_info.helper_path}/#{plugin_name}_helper.rb")
)

К сожалению, в Windows это иногда приводит к ошибкам теста, если сгенерированные временные пути содержат каталог, который вызывает 8.3 имен файлов . Пример:

2018-09-11T20:52:42.9346535Z   1) Fastlane::PluginGenerator#generate creates a plugin.rb file for the plugin
2018-09-11T20:52:42.9346797Z      Failure/Error:
2018-09-11T20:52:42.9347031Z        expect(all_classes).to contain_exactly(
2018-09-11T20:52:42.9347330Z          File.expand_path("lib/#{plugin_info.actions_path}/#{plugin_name}_action.rb"),
2018-09-11T20:52:42.9347673Z          File.expand_path("lib/#{plugin_info.helper_path}/#{plugin_name}_helper.rb")
2018-09-11T20:52:42.9347922Z        )
2018-09-11T20:52:42.9348040Z 
2018-09-11T20:52:42.9348443Z        expected collection contained:  ["C:/Users/VSSADM~1/AppData/Local/Temp/d20180911-3656-1muipt1/fastlane-plugin-tester_thing/lib/fastla...muipt1/fastlane-plugin-tester_thing/lib/fastlane/plugin/tester_thing/helper/tester_thing_helper.rb"]
2018-09-11T20:52:42.9349108Z        actual collection contained:    ["C:/Users/VssAdministrator/AppData/Local/Temp/d20180911-3656-1muipt1/fastlane-plugin-tester_thing/li...muipt1/fastlane-plugin-tester_thing/lib/fastlane/plugin/tester_thing/helper/tester_thing_helper.rb"]
2018-09-11T20:52:42.9349732Z        the missing elements were:      ["C:/Users/VSSADM~1/AppData/Local/Temp/d20180911-3656-1muipt1/fastlane-plugin-tester_thing/lib/fastla...muipt1/fastlane-plugin-tester_thing/lib/fastlane/plugin/tester_thing/helper/tester_thing_helper.rb"]
2018-09-11T20:52:42.9350359Z        the extra elements were:        ["C:/Users/VssAdministrator/AppData/Local/Temp/d20180911-3656-1muipt1/fastlane-plugin-tester_thing/li...muipt1/fastlane-plugin-tester_thing/lib/fastlane/plugin/tester_thing/helper/tester_thing_helper.rb"]
2018-09-11T20:52:42.9350855Z      # ./fastlane/spec/plugins_specs/plugin_generator_spec.rb:135:in `block (4 levels) in <top (required)>'
2018-09-11T20:52:42.9351199Z      # ./fastlane/spec/plugins_specs/plugin_generator_spec.rb:119:in `chdir'
2018-09-11T20:52:42.9351541Z      # ./fastlane/spec/plugins_specs/plugin_generator_spec.rb:119:in `block (3 levels) in <top (required)>'

В этом случае проблема заключается в пути к временному каталогу, созданному на машине конвейеров Azure DevOps: C:/Users/VssAdministrator/AppData/... против C:/Users/VSSADM~1/AppData/...

Некоторые из методов ruby ​​возвращают длинную версию, другие - короткую. Сложно кажется, что одни и те же методы иногда возвращают один, а затем другой - в зависимости от некоторого контекста, который я еще не понял, по крайней мере, так мне кажется после небольшой отладки теста.

Может кто-нибудь объяснить мне, что происходит и какие-нибудь идеи, как я могу это исправить? Есть ли способ «стандартизировать» все на одном «методе» представления пути?
Что-нибудь еще, что я должен прочитать или посмотреть, чтобы это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...