class KnapsackPro::Adapters::BaseAdapter
Constants
- TEST_DIR_PATTERN
-
Just example, please overwrite constant in subclass
Public Class Methods
Source
# File lib/knapsack_pro/adapters/base_adapter.rb, line 9 def self.adapter_bind_method_called_file adapter_name = self.to_s.gsub('::', '-') "#{KnapsackPro::Config::TempFiles::TEMP_DIRECTORY_PATH}/#{adapter_name}-bind_method_called_for_node_#{KnapsackPro::Config::Env.ci_node_index}.txt" end
Source
# File lib/knapsack_pro/adapters/base_adapter.rb, line 38 def self.bind adapter = new adapter.bind adapter end
Source
# File lib/knapsack_pro/adapters/base_adapter.rb, line 22 def self.slow_test_file?(adapter_class, test_file_path) @slow_test_file_paths ||= begin slow_test_files = if KnapsackPro::Config::Env.slow_test_file_pattern KnapsackPro::TestFileFinder.slow_test_files_by_pattern(adapter_class) else # get slow test files from JSON file based on data from API KnapsackPro::SlowTestFileDeterminer.read_from_json_report end KnapsackPro::TestFilePresenter.paths(slow_test_files) end clean_path = KnapsackPro::TestFileCleaner.clean(test_file_path) @slow_test_file_paths.include?(clean_path) end
Source
# File lib/knapsack_pro/adapters/base_adapter.rb, line 14 def self.split_by_test_cases_enabled? false end
Source
# File lib/knapsack_pro/adapters/base_adapter.rb, line 18 def self.test_file_cases_for(slow_test_files) raise NotImplementedError end
Source
# File lib/knapsack_pro/adapters/base_adapter.rb, line 44 def self.verify_bind_method_called ::Kernel.at_exit do if File.exist?(adapter_bind_method_called_file) File.delete(adapter_bind_method_called_file) else puts "\n\n" KnapsackPro.logger.error('-'*10 + ' Configuration error ' + '-'*50) KnapsackPro.logger.error("You forgot to call #{self}.bind method in your test runner configuration file. It is needed to record test files time execution. Please follow the installation guide to configure your project properly #{KnapsackPro::Urls::INSTALLATION_GUIDE}") KnapsackPro.logger.error("If you already have #{self}.bind method added and you still see this error then one of your tests must have deleted the .knapsack_pro directory from the disk accidentally. Please ensure you do not remove the .knapsack_pro directory: #{KnapsackPro::Urls::DASHBOARD__ZEROISH_TEST_EXECUTION_TIMES}") Kernel.exit(1) end end end
Public Instance Methods
Source
# File lib/knapsack_pro/adapters/base_adapter.rb, line 58 def bind KnapsackPro::Config::TempFiles.ensure_temp_directory_exists! File.write(self.class.adapter_bind_method_called_file, nil) if KnapsackPro::Config::Env.regular_mode? KnapsackPro.logger.debug('Regular Mode enabled.') bind_time_tracker bind_save_report end if KnapsackPro::Config::Env.queue_mode? KnapsackPro.logger.debug('Queue Mode enabled.') bind_queue_mode end end
Source
# File lib/knapsack_pro/adapters/base_adapter.rb, line 86 def bind_after_queue_hook raise NotImplementedError end
Source
# File lib/knapsack_pro/adapters/base_adapter.rb, line 82 def bind_before_queue_hook raise NotImplementedError end
Source
# File lib/knapsack_pro/adapters/base_adapter.rb, line 90 def bind_queue_mode bind_before_queue_hook bind_after_queue_hook bind_time_tracker end
Source
# File lib/knapsack_pro/adapters/base_adapter.rb, line 78 def bind_save_report raise NotImplementedError end
Source
# File lib/knapsack_pro/adapters/base_adapter.rb, line 74 def bind_time_tracker raise NotImplementedError end