RSpec 3 지원

5722 단어 thin

묘사

Rspec3을 사용하도록 패치를 보냅니다.
이 PR로 트래비스 결과를 확인해 보겠습니다. 대부분의 시간을 고치고 있지만 여전히 완벽하지 않아서(2번 실패)
나는 이 두 가지 실패가 루비 버전에 달려 있는지 알고 싶다. 왜냐하면 나는 새 버전인 루비 2.4.0을 사용하기 때문이다.
$ ruby -v
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]

$ bundle -v
Bundler version 1.14.3

$ bundle install --path vendor/bundle

$ bundle list
Gems included by the bundle:
  * bundler (1.14.3)
  * daemons (1.2.4)
  * diff-lcs (1.3)
  * eventmachine (1.2.3)
  * rack (2.0.1)
  * rake (12.0.0)
  * rake-compiler (1.0.3)
  * rspec (3.5.0)
  * rspec-core (3.5.4)
  * rspec-expectations (3.5.0)
  * rspec-mocks (3.5.0)
  * rspec-support (3.5.0)
  * thin (1.7.0)

$ bundle exec rake spec
...
[2017-03-02T22:11:15.056429 #17551]  INFO -- : Hey
[2017-03-02T22:11:15.065435 #17551]  INFO -- : hey
...
Failures:

  1) Thin::Logging tracing routines (with NO custom logger) should emit trace messages if tracing is enabled 
     Failure/Error: out.include?("Hey").should be_truthy

       expected: truthy value
            got: false
     # ./spec/logging_spec.rb:158:in `block (3 levels) in <top (required)>'

  2) Thin::Logging tracing routines (with NO custom logger) should be usable (at the module level) for logging
     Failure/Error: out.include?("hey").should be_truthy

       expected: truthy value
            got: false
     # ./spec/logging_spec.rb:167:in `block (3 levels) in <top (required)>'
...
197 examples, 2 failures
고맙습니다.

토론 #1

Travis CI를 활성화할 수 있습니까?
https://travis-ci.org/macournoyer/thin

This is not an active repository You don't have sufficient rights to enable this repo on Travis. Please contact the admin to enable it or to receive admin rights yourself.

토론 #2

를 참고로 내가 상기 두 개의 실패한 테스트를 각각 실행할 때 그것들은 성공했다.
이 문제를 해결할 방법이 있습니까?
$ bundle exec rspec spec/logging_spec.rb -e "should emit trace messages if tracing is enabled " --format documentation
...
Thin::Logging
  tracing routines (with NO custom logger)
    should emit trace messages if tracing is enabled
...
1 example, 0 failures
$ bundle exec rspec spec/logging_spec.rb:161 --format documentation
...
Thin::Logging
  tracing routines (with NO custom logger)
    should be usable (at the module level) for logging
...
1 example, 0 failures

토론 #셋

@junaruga는 이 서버를 사용하고 있는 사용자를 위해 마스터에서 변경 사항의 기초를 다시 설정할 시간이 있습니까?가능하다면github 동작을 설정할 것입니다.

토론 #4

@ioquatix 그럼요.다시 기조를 정하라고.github 설정을 위한 작업에 감사 드립니다!

토론 #5

저는 데모니제이션 규범을 통과할 수 없습니다.나는 그것이 어떻게 실패할 수 있는지 모르겠다.나는 그래도 합병할 거야.
그럼 다시 정할 수 있겠어요?그리고 우리는 불안정한 규격을 복구해 볼 수 있다.

토론 #6

국가를 관리하는 방식daemonizing_spec.rb은 매우 나쁘다.하나의 규범에서 다음 규범까지 대량의 상태가 누설되었다.뒷갈고리에서 프로세스를 종료하는 방식은 잘못된 것입니다. 프로세스가 종료되었을 수도 있기 때문에 테스트와 무관한 무작위 프로세스를 종료할 수도 있습니다.

토론 #7

Then can you rebase? Then, we can try to fix flaky specs.


네, 할 수 있어요.나는 오늘 해 보겠다.

토론 #8

Reased.현재 주 지점에서 삭제되었기 때문에 .travis.yml 삭제했습니다.

I cannot get daemonization specs to pass.


나는 또한daemonization규범이 주소를 다시 정하기 전에 현재의 최신 주요 지점을 전달하지 않았다는 것을 알아차렸다.
그러나 주 지점의feature/rspec3에서 주소를 다시 정한 후에 이 규범은 나의 로컬 버전에 전달되었다.
반대로 나는 로컬 기기에서 루비 2.7.1과 페도라 32의 아래 2개Thin::Logging tracing routines (with NO custom logger)의 규범이 실패한 것을 보았다.
  1) Thin::Logging tracing routines (with NO custom logger) should emit trace messages if tracing is enabled-
     Failure/Error: out.include?("Hey").should be_truthy

       expected: truthy value
            got: false
     # ./spec/logging_spec.rb:158:in `block (3 levels) in <top (required)>'

  2) Thin::Logging tracing routines (with NO custom logger) should be usable (at the module level) for logging
     Failure/Error: out.include?("hey").should be_truthy

       expected: truthy value
            got: false
     # ./spec/logging_spec.rb:167:in `block (3 levels) in <top (required)>'
@object.traceLogging.trace_msgLogging.trace?true일 때 메시지를 출력하는 방법이다.
2 규범은 독립 테스트로 집행할 때 통과한다.
$ bundle exec rspec spec/logging_spec.rb:158

$ bundle exec rspec spec/logging_spec.rb:167
이 두 규격은 이렇게 운행할 때 여전히 실패한다.
$ bundle exec rspec spec/logging_spec.rb
그러나 다음 코드를 추가할 때 하위 결과(?)로실행 bundle exec rspec spec/logging_spec.rb 시 2개의 규범이 내 로컬 버전에 전달되었다
$ git diff
diff --git a/spec/logging_spec.rb b/spec/logging_spec.rb
index 9510c1f..d38f005 100644
--- a/spec/logging_spec.rb
+++ b/spec/logging_spec.rb
@@ -151,7 +151,9 @@ describe Logging do

     it "should emit trace messages if tracing is enabled " do
       Logging.trace = true
+      p "[DEBUG] Hey trace: #{Logging.trace?}"
       out = with_redirected_stdout do
+        p "[DEBUG] Hey trace: #{Logging.trace?}"
         @object.trace("Hey")
       end

@@ -160,7 +162,9 @@ describe Logging do

     it "should be usable (at the module level) for logging" do
       Logging.trace = true
+      p "[DEBUG] hey trace: #{Logging.trace?}"
       out = with_redirected_stdout do
+        p "[DEBUG] hey trace: #{Logging.trace?}"
         Logging.trace_msg("hey")
       end
코드를 좀 봤으면 좋겠어요.
고맙습니다.

토론 #9

이걸 합병하고 싶어요. 지금 규범이 왜 통과되지 않았는지 볼게요.

좋은 웹페이지 즐겨찾기