Skip to content

Commit

Permalink
Add --no-skipping-tests option
Browse files Browse the repository at this point in the history
  • Loading branch information
sriedel authored Nov 28, 2022
1 parent fb28c2f commit 33925f8
Show file tree
Hide file tree
Showing 4 changed files with 80 additions and 1 deletion.
12 changes: 12 additions & 0 deletions lib/rdoc/options.rb
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,10 @@ class RDoc::Options

attr_reader :visibility

##
# Indicates if files of test suites should be skipped
attr_accessor :skip_tests

def initialize loaded_options = nil # :nodoc:
init_ivars
override loaded_options if loaded_options
Expand Down Expand Up @@ -386,6 +390,7 @@ def init_ivars # :nodoc:
@write_options = false
@encoding = Encoding::UTF_8
@charset = @encoding.name
@skip_tests = true
end

def init_with map # :nodoc:
Expand Down Expand Up @@ -778,6 +783,13 @@ def parse argv

opt.separator nil

opt.on("--no-skipping-tests", nil,
"Don't skip generating documentation for test and spec files") do |value|
@skip_tests = false
end

opt.separator nil

opt.on("--extension=NEW=OLD", "-E",
"Treat files ending with .new as if they",
"ended with .old. Using '-E cgi=rb' will",
Expand Down
16 changes: 15 additions & 1 deletion lib/rdoc/rdoc.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,17 @@ class RDoc::RDoc

GENERATORS = {}

##
# List of directory names always skipped

UNCONDITIONALLY_SKIPPED_DIRECTORIES = %w[CVS .svn .git].freeze

##
# List of directory names skipped if test suites should be skipped

TEST_SUITE_DIRECTORY_NAMES = %w[spec test].freeze


##
# Generator instance used for creating output

Expand Down Expand Up @@ -280,7 +291,10 @@ def normalized_file_list(relative_files, force_doc = false,
file_list[rel_file_name] = mtime
end
when "directory" then
next if rel_file_name == "CVS" || rel_file_name == ".svn"
next if UNCONDITIONALLY_SKIPPED_DIRECTORIES.include?(rel_file_name)

basename = File.basename(rel_file_name)
next if options.skip_tests && TEST_SUITE_DIRECTORY_NAMES.include?(basename)

created_rid = File.join rel_file_name, "created.rid"
next if File.file? created_rid
Expand Down
11 changes: 11 additions & 0 deletions test/rdoc/test_rdoc_options.rb
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ def test_to_yaml
'title' => nil,
'visibility' => :protected,
'webcvs' => nil,
'skip_tests' => true,
}

assert_equal expected, coder
Expand Down Expand Up @@ -871,6 +872,16 @@ def test_load_options_no_file
end
end

def test_skip_test_default_value
@options.parse %w[]
assert_equal true, @options.skip_tests
end

def test_no_skip_test_value
@options.parse %w[--no-skipping-tests]
assert_equal false, @options.skip_tests
end

class DummyCoder < Hash
alias add :[]=
def tag=(tag)
Expand Down
42 changes: 42 additions & 0 deletions test/rdoc/test_rdoc_rdoc.rb
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,48 @@ def test_normalized_file_list_with_dot_doc_overridden_by_exclude_option
assert_equal expected_files, files
end

def test_normalized_file_list_with_skipping_tests_enabled
files = temp_dir do |dir|
@a = File.expand_path('a.rb')
spec_dir = File.expand_path('spec')
spec_file = File.expand_path(File.join('spec', 'my_spec.rb'))
test_dir = File.expand_path('test')
test_file = File.expand_path(File.join('test', 'my_test.rb'))
FileUtils.touch @a
FileUtils.mkdir_p spec_dir
FileUtils.touch spec_file
FileUtils.mkdir_p test_dir
FileUtils.touch test_file

@rdoc.options.skip_tests = true
@rdoc.normalized_file_list [File.realpath(dir)]
end

files = files.map { |file, *| File.expand_path file }
assert_equal [@a], files
end

def test_normalized_file_list_with_skipping_tests_disabled
files = temp_dir do |dir|
@a = File.expand_path('a.rb')
spec_dir = File.expand_path('spec')
@spec_file = File.expand_path(File.join('spec', 'my_spec.rb'))
test_dir = File.expand_path('test')
@test_file = File.expand_path(File.join('test', 'my_test.rb'))
FileUtils.touch @a
FileUtils.mkdir_p spec_dir
FileUtils.touch @spec_file
FileUtils.mkdir_p test_dir
FileUtils.touch @test_file

@rdoc.options.skip_tests = false
@rdoc.normalized_file_list [File.realpath(dir)]
end

files = files.map { |file, *| File.expand_path file }
assert_equal [@a, @spec_file, @test_file], files.sort
end

def test_parse_file
@rdoc.store = RDoc::Store.new

Expand Down

0 comments on commit 33925f8

Please sign in to comment.