Merge pull request #13158 from apainintheneck/tests-changed-switch
Added --changed option to "brew tests" dev cmd
This commit is contained in:
		
						commit
						2d9bfc62be
					
				@ -26,12 +26,16 @@ module Homebrew
 | 
			
		||||
                          "official external commands."
 | 
			
		||||
      switch "--byebug",
 | 
			
		||||
             description: "Enable debugging using byebug."
 | 
			
		||||
      switch "--changed",
 | 
			
		||||
             description: "Only runs tests on files that were changed from the master branch."
 | 
			
		||||
      flag   "--only=",
 | 
			
		||||
             description: "Run only <test_script>`_spec.rb`. Appending `:`<line_number> will start at a "\
 | 
			
		||||
                          "specific line."
 | 
			
		||||
      flag   "--seed=",
 | 
			
		||||
             description: "Randomise tests with the specified <value> instead of a random seed."
 | 
			
		||||
 | 
			
		||||
      conflicts "--changed", "--only"
 | 
			
		||||
 | 
			
		||||
      named_args :none
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
@ -124,10 +128,28 @@ module Homebrew
 | 
			
		||||
          parallel = false
 | 
			
		||||
          ["test/#{test_name}_spec.rb:#{line}"]
 | 
			
		||||
        end
 | 
			
		||||
      elsif args.changed?
 | 
			
		||||
        changed_files = Utils.popen_read("git", "diff", "--name-only", "master")
 | 
			
		||||
 | 
			
		||||
        raise UsageError, "No files have been changed from the master branch!" if changed_files.blank?
 | 
			
		||||
 | 
			
		||||
        filestub_regex = %r{Library/Homebrew/([\w/-]+).rb}
 | 
			
		||||
        changed_files.scan(filestub_regex)
 | 
			
		||||
                     .map { |filestub| Pathname("test/#{filestub.last}_spec.rb") }
 | 
			
		||||
                     .select(&:exist?)
 | 
			
		||||
      else
 | 
			
		||||
        Dir.glob("test/**/*_spec.rb")
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      if files.blank?
 | 
			
		||||
        raise UsageError, "The --only= argument requires a valid file or folder name!" if args.only
 | 
			
		||||
 | 
			
		||||
        if args.changed?
 | 
			
		||||
          opoo "No tests are directly associated with the changed files!"
 | 
			
		||||
          return
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      parallel_rspec_log_name = "parallel_runtime_rspec"
 | 
			
		||||
      parallel_rspec_log_name = "#{parallel_rspec_log_name}.no_compat" if args.no_compat?
 | 
			
		||||
      parallel_rspec_log_name = "#{parallel_rspec_log_name}.generic" if args.generic?
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user