Giter Site home page Giter Site logo

tldr's People

Contributors

henrahmagix avatar leipeleon avatar searls avatar tenderlove avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

tldr's Issues

Test Failure?

I'm getting this when doing a rake test

ยฏ\_(ใƒ„)_/ยฏ ๐Ÿˆ $rake test
Run options: --seed 61183

# Running:

.....................F

Failure:
DefaultReporterTest#test_parallel_output [/Users/coreyhaines/Projects/tldr/tests/default_reporter_test.rb:29]:
--- expected
+++ actual
@@ -1,10 +1,6 @@
-"Command: bundle exec tldr --seed 42
-" +
-"๐ŸŒฑ --seed 42
-" +
+"Command: tldr --seed 42
+" + "๐ŸŒฑ --seed 42
+" + "
+" + "๐Ÿƒ Running:
+" + "
 "
-" +
-"๐Ÿƒ Running:
-" +
-"
-"



rails test Users/coreyhaines/Projects/tldr/tests/default_reporter_test.rb:19

..............................................................................................................

Finished in 2.084595s, 63.3217 runs/s, 236.0171 assertions/s.
132 runs, 492 assertions, 1 failures, 0 errors, 0 skips
rake aborted!
Command failed with status (1)

Tasks: TOP => test
(See full trace by running task with --trace)

Thoughts on how to solve for debugging tests?

Hi there! ๐Ÿ‘‹

I watched your pairing episode and started a sample project to poke around with TLDR. Really cool project!

Maybe this is just me - but I tend to do a lot of introspection to poke around in an object, test, etc - and pry is my debugger of choice.

To my initial surprise, throwing a binding.pry in my test - while it halted execution, the time bomb exploded shortly after. Upon digging into the code - this makes sense.

Wondering - would it be helpful to have a debugging flag? (similar to ENV["CI"])?

CleanShot 2023-10-04 at 15 43 59@2x

`tldr` is already a popular cli tool for documentation

https://tldr.sh/

I don't have a reasonable solution for you, but I wanted to make sure you knew while it was still relatively easy to change (if that's what you choose to do).

Feel free to close as "Won't Fix"!

Thank you for making it! I'm going to try to push this at my company. I might rename the binary though. :P

Not playing nice with mocktail

Playing with tldr and trying to move some Minitest mocks over. The following exception is raised just by having the Mocktail gem loaded (without even using it). Remove gem "mocktail" and the test below works as expected.

Gemfile

source "https://rubygems.org"

gem "mocktail"
gem "tldr"

test/my_class_test.rb

require "bundler/setup"
Bundler.require(:default, :test)

class MyClassTest < TLDR
  def test_things
    assert true
  end
end
โžœ  tldrmocktail bundle exec tldr
bundler: failed to load command: tldr (/Users/james/.rbenv/versions/3.2.2/bin/tldr)
/Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/tldr-0.9.3/lib/tldr/sorbet_compatibility.rb:6:in `method': wrong number of arguments (given 0, expected 1) (ArgumentError)
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/tldr-0.9.3/lib/tldr/sorbet_compatibility.rb:6:in `unwrap_method'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/tldr-0.9.3/lib/tldr/value/test.rb:7:in `initialize'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/tldr-0.9.3/lib/tldr/class_util.rb:11:in `new'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/tldr-0.9.3/lib/tldr/class_util.rb:11:in `block in gather_tests'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/tldr-0.9.3/lib/tldr/class_util.rb:10:in `map'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/tldr-0.9.3/lib/tldr/class_util.rb:10:in `gather_tests'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/tldr-0.9.3/lib/tldr/planner.rb:50:in `block in gather_tests'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/tldr-0.9.3/lib/tldr/planner.rb:49:in `each'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/tldr-0.9.3/lib/tldr/planner.rb:49:in `flat_map'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/tldr-0.9.3/lib/tldr/planner.rb:49:in `gather_tests'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/tldr-0.9.3/lib/tldr/planner.rb:17:in `plan'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/tldr-0.9.3/lib/tldr.rb:41:in `tests'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/tldr-0.9.3/lib/tldr.rb:34:in `cli'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/tldr-0.9.3/exe/tldr:5:in `<top (required)>'
	from /Users/james/.rbenv/versions/3.2.2/bin/tldr:25:in `load'
	from /Users/james/.rbenv/versions/3.2.2/bin/tldr:25:in `<top (required)>'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.20/lib/bundler/cli/exec.rb:58:in `load'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.20/lib/bundler/cli/exec.rb:58:in `kernel_load'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.20/lib/bundler/cli/exec.rb:23:in `run'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.20/lib/bundler/cli.rb:492:in `exec'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.20/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.20/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.20/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.20/lib/bundler/cli.rb:34:in `dispatch'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.20/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.20/lib/bundler/cli.rb:28:in `start'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.20/exe/bundle:37:in `block in <top (required)>'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.20/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
	from /Users/james/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.20/exe/bundle:29:in `<top (required)>'
	from /Users/james/.rbenv/versions/3.2.2/bin/bundle:25:in `load'
	from /Users/james/.rbenv/versions/3.2.2/bin/bundle:25:in `<main>'

Misc thoughts and feedback

Very interesting library! ๐Ÿ˜„

A few thoughts:

  • You should open the "Discussions" tab on the repo, for questions etc. Also probably disable 'Project' if you don't use it.
  • Is there a reason why we cannot continue using MiniTest? I thought this was the runner, and that test definition wouldn't necessarily be tied to the choice of runner.
  • class MathTest < TLDR looks weird to me, I would have preferred class MathTest < TLDR::Test or class MathTest < TLDR::TestCase.
  • You should clarify if you still think the tool is nice even if only ~10% of the suit gets run on average, or if you think that's a flaw that your tool will "work against". Basically, I think for us we'll never get it to run in 1.8, but we'd be happy with never running the whole suit locally.
  • Maybe your tooling could somehow cleverly build up a database (based on code-coverage methodologies) and map files to tests, such that it would know which tests are important to run after certain source code files have been changed. I saw you're doing timestamp priorities already, but this would be next-level.

Parallel tests sometimes get locked when the same file is loaded via active_support/dependencies/autoload, causing test timeout

I'm not sure if this is an issue in Concurrent, or Zeitwerk, or both together, so I'm wondering if there's anything this library can do about this situation ๐Ÿค”

To debug this, I've edited this gem's source: I changed WIPTest to take in the current thread, and Runner so when the 1.8 second process exit happens it prints the current trace of the test thread to see where it's gotten hung up.

This doesn't happen all the time, like ~30% based on my bunch of runs. It was happening in a project of mine, and I've been able to reduce it down to the following repo: https://github.com/henrahmagix/tldr-require-lock-test/tree/e9a5e45c02949c0773c47797e2beaab734589c5b. This is the smallest reproduction of my own project, which is a Railtie, hence require "rails/all" which I believe brings in Zeitwerk.

What do y'all think? Is this something that can be solved by TLDR? Or is it an unsolvable concurrency problem?


Here's a script to edit the tldr source to get the "WIP TRACE" output:

$ wip_test_file=$(bundle exec ruby -e 'require "tldr"; puts TLDR.const_source_location(:WIPTest)[0]')
$ runner_file=$(bundle exec ruby -e 'require "tldr"; puts TLDR.const_source_location(:Runner)[0]')
$ perl -p -i -e 's/:start_time/:start_time, :thread/' $wip_test_file
$ perl -p -i -e 's/WIPTest.new\(test, start_time\)/WIPTest.new(test, start_time, Thread.current)/' $runner_file
$ perl -p -i -e 's/( *)(\@run_aborted.make_true)/$1$2\n$1\@wip.each { |wip_test| puts "-----\\nWIP TRACE\\n  #{wip_test.thread.backtrace_locations&.join("\\n  ")}" }/' $runner_file

Here's the patch:

# lib/tldr/value/wip_test.rb
@@ -1,3 +1,3 @@
 class TLDR
-  WIPTest = Struct.new(:test, :start_time)
+  WIPTest = Struct.new(:test, :start_time, :thread)
 end

# lib/tldr/runner.rb
@@ -20,6 +20,7 @@
           next if ENV["CI"] && !$stderr.tty?
           next if @run_aborted.true?
           @run_aborted.make_true
+          @wip.each { |wip_test| puts "-----\nWIP TRACE\n  #{wip_test.thread.backtrace_locations&.join("\n  ")}" }
           reporter.after_tldr(plan.tests, @wip.dup, @results.dup)
           exit!(3)
         end
@@ -51,7 +52,7 @@
     def run_test test, config, plan, reporter
       e = nil
       start_time = Process.clock_gettime(Process::CLOCK_MONOTONIC, :microsecond)
-      wip_test = WIPTest.new(test, start_time)
+      wip_test = WIPTest.new(test, start_time, Thread.current)
       @wip << wip_test
       runtime = time_it(start_time) do
         instance = test.test_class.new

Here's a failing run with the stack trace of each test thread: it can be seen that the lines each test is getting hung up on are at the point that the same constant, ActionView::Base, is being autoloaded either by referencing the constant and it gets autoloaded (via a call to t() as defined in another file, ActionView::Helpers::TranslationHelper), or it's directly required (via the require line in the test).

$ bin/tldr test.rb
Command: bundle exec tldr --no-warnings "test.rb"
๐ŸŒฑ --seed 1042

๐Ÿƒ Running:

-----
WIP TRACE
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/actionview-7.1.2/lib/action_view/base.rb:141:in `<module:ActionView>'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/actionview-7.1.2/lib/action_view/base.rb:12:in `<top (required)>'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/zeitwerk-2.6.12/lib/zeitwerk/kernel.rb:38:in `require'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/zeitwerk-2.6.12/lib/zeitwerk/kernel.rb:38:in `require'
  /me/tldr-require-lock-test/test.rb:11:in `test_one'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/runner.rb:68:in `block in run_test'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/runner.rb:100:in `time_it'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/runner.rb:57:in `run_test'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/runner.rb:39:in `block in run'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/executor.rb:36:in `map'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/executor.rb:36:in `block (2 levels) in run_in_parallel'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/promises.rb:1583:in `evaluate_to'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/promises.rb:1766:in `block in on_resolvable'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:352:in `run_task'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:343:in `block (3 levels) in create_worker'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:334:in `loop'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:334:in `block (2 levels) in create_worker'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:333:in `catch'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:333:in `block in create_worker'
-----
WIP TRACE
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/zeitwerk-2.6.12/lib/zeitwerk/kernel.rb:38:in `require'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/zeitwerk-2.6.12/lib/zeitwerk/kernel.rb:38:in `require'
  /me/tldr-require-lock-test/test.rb:15:in `test_two'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/runner.rb:68:in `block in run_test'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/runner.rb:100:in `time_it'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/runner.rb:57:in `run_test'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/runner.rb:39:in `block in run'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/executor.rb:36:in `map'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/executor.rb:36:in `block (2 levels) in run_in_parallel'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/promises.rb:1583:in `evaluate_to'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/promises.rb:1766:in `block in on_resolvable'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:352:in `run_task'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:343:in `block (3 levels) in create_worker'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:334:in `loop'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:334:in `block (2 levels) in create_worker'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:333:in `catch'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:333:in `block in create_worker'
-----
WIP TRACE
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/actionview-7.1.2/lib/action_view/helpers/translation_helper.rb:153:in `missing_translation'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/actionview-7.1.2/lib/action_view/helpers/translation_helper.rb:104:in `translate'
  /me/tldr-require-lock-test/test.rb:23:in `test_three'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/runner.rb:68:in `block in run_test'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/runner.rb:100:in `time_it'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/runner.rb:57:in `run_test'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/runner.rb:39:in `block in run'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/executor.rb:36:in `map'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/executor.rb:36:in `block (2 levels) in run_in_parallel'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/promises.rb:1583:in `evaluate_to'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/promises.rb:1766:in `block in on_resolvable'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:352:in `run_task'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:343:in `block (3 levels) in create_worker'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:334:in `loop'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:334:in `block (2 levels) in create_worker'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:333:in `catch'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:333:in `block in create_worker'
-----
WIP TRACE
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/zeitwerk-2.6.12/lib/zeitwerk/kernel.rb:38:in `require'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/zeitwerk-2.6.12/lib/zeitwerk/kernel.rb:38:in `require'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/actionview-7.1.2/lib/action_view/helpers/translation_helper.rb:153:in `missing_translation'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/actionview-7.1.2/lib/action_view/helpers/translation_helper.rb:104:in `translate'
  /me/tldr-require-lock-test/test.rb:31:in `test_four'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/runner.rb:68:in `block in run_test'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/runner.rb:100:in `time_it'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/runner.rb:57:in `run_test'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/runner.rb:39:in `block in run'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/executor.rb:36:in `map'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/tldr-0.9.5/lib/tldr/executor.rb:36:in `block (2 levels) in run_in_parallel'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/promises.rb:1583:in `evaluate_to'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/promises.rb:1766:in `block in on_resolvable'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:352:in `run_task'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:343:in `block (3 levels) in create_worker'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:334:in `loop'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:334:in `block (2 levels) in create_worker'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:333:in `catch'
  /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:333:in `block in create_worker'
๐Ÿฅต

๐Ÿšจ==================== ABORTED RUN ====================๐Ÿšจ

too long; didn't run!

๐Ÿƒ Completed 0 of 4 tests (0%) before running out of time.

๐Ÿ™… 4 tests were cancelled in progress:
  1812ms - Test#test_one [test.rb:10]
  1812ms - Test#test_two [test.rb:14]
  1812ms - Test#test_three [test.rb:18]
  1811ms - Test#test_four [test.rb:26]

๐Ÿค˜ Run the 4 tests that didn't finish:
  bundle exec tldr  "test.rb:10:14:18:26"


๐Ÿ™ˆ Suppress this summary with --yes-i-know

๐Ÿšจ==================== ABORTED RUN ====================๐Ÿšจ

Finished in 1814ms.

0 test classes, 0 test methods, 0 failures, 0 errors, 0 skips
$ sed -n -e '153p;' /me/.rbenv/versions/3.2.2/gemsets/tldr-require-lock-test/gems/actionview-7.1.2/lib/action_view/helpers/translation_helper.rb
          if ActionView::Base.debug_missing_translation

Sometimes I get uninitialised constant instead, which is perhaps the same parallelisation problem? I'm not sure ๐Ÿค”

$ bin/tldr test.rb
Command: bundle exec tldr --no-warnings "test.rb"
๐ŸŒฑ --seed 407

๐Ÿƒ Running:

๐Ÿคฌ๐Ÿคฌ๐Ÿ˜๐Ÿ˜

Failing tests:

1) Test#test_three [test.rb:20] errored:
uninitialized constant ActionView::Helpers::TranslationHelper

  Re-run this test:
    bundle exec tldr "test.rb:18"

2) Test#test_four [test.rb:28] errored:
uninitialized constant ActionView::Helpers::TranslationHelper

  Re-run this test:
    bundle exec tldr "test.rb:26"

Finished in 34ms.

1 test class, 4 test methods, 0 failures, 2 errors, 0 skips

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.