2012-01-11 19 views
7

Tôi đang cố gắng tạo và chạy một JUnitStory đơn giản để chạy tệp .story.JBehave - tất cả các bước được đánh dấu đang chờ xử lý?

Tôi có điều này:

class Scenario1 extends JUnitStory { 
    @Delegate MySteps steps = new MySteps() 

    @Override 
    public Configuration configuration() { 
     return new MostUsefulConfiguration() 
       .useStoryLoader(new LoadFromRelativeFile(new File('src/test/groovy').toURL())) 
       .useStoryReporterBuilder(
       new StoryReporterBuilder() 
         .withDefaultFormats() 
         .withFormats(Format.HTML, Format.CONSOLE, Format.TXT) 

     ); 
    } 

    @Override 
    public List candidateSteps() { 
     final candidateSteps = new InstanceStepsFactory(configuration(), this).createCandidateSteps() 
     return candidateSteps; 
    } 
} 

Có hoặc không có các đại biểu (sao chép và dán trong tất cả các phương pháp chú thích của MySteps), bất cứ khi nào tôi chạy JBehave, tôi nhận được kết quả như sau:

somePattern(){ 
    // PENDING 
} 

Nó giống như những câu chuyện cá nhân không nhận các bước.

Khi tôi tạo lớp "Câu chuyện" và kéo tất cả các tệp tin truyện bằng storyPaths, các bước riêng lẻ được xác định. Sử dụng một trình gỡ lỗi, tôi thấy rằng các ứng viênSteps đang bị tấn công, nhưng nó không kéo dữ liệu cần thiết.

Điều gì có thể xảy ra ở đây?

+0

Chỉ cần kiểm tra, nhưng MyStep có nhập org.jbehave.core.annotations. *? –

Trả lời

-5

JBehave là công nghệ cũ, kém phát triển. Không sử dụng nó.

+0

hãy giải thích tại sao bạn nghĩ như vậy? – endless

0

Bạn không cần sử dụng @Delegate - JUnitStory của bạn không phải là lớp Bước của bạn. Bạn có thể thử đi qua các bước mà bạn có điều này không?

Khi bạn vượt qua trong một lớp đã được bytecode thao tác cho các lớp bước, JBehave có thể không thấy chú thích jbehave nữa.

2

Bạn không cần ủy quyền cho các bước. Và cũng có thể bạn không nên ghi đè lên các ứng cử viênSteps, nhưng đúng hơn là bướcFactory. Trong các phiên bản sau này của JBehave, candidateSteps bị phản đối, để làm cho rằng ưu tiên cho phương pháp nhà máy nổi bật hơn (http://jbehave.org/reference/stable/javadoc/core/org/jbehave/core/ConfigurableEmbedder.html#candidateSteps())

Xem blog này, nơi tôi đã giải thích cách cấu hình JBehave cơ bản làm việc một cách chi tiết hơn:

http://blog.codecentric.de/en/2012/06/jbehave-configuration-tutorial/

Andreas

1

Dưới đây là câu trả lời bạn bè của bạn: các gói phần mềm định dạng đã thay đổi.

Đây là việc không được chấp nhận nhập static org.jbehave.core.reporters.StoryReporterBuilder.Format.HTML;

Đây là hình mới :) nhập static org.jbehave.core.reporters.Format.HTML;

Mất một lúc để tìm câu trả lời nhưng đã bị ẩn trên tài liệu jbehave

Hy vọng điều đó sẽ hữu ích! Chúc mừng!

Các vấn đề liên quan