2012-10-08 18 views
7

Khi thực hiện kiểm tra JUnit với tycho-surefire-plugin, tycho dành thời gian chạy bằng phương trình equinox. Trong một số ít trường hợp, có thể xảy ra một số gói trong thời gian chạy thử nghiệm OSGi không thể được giải quyết/bắt đầu (ví dụ: gói sử dụng xung đột). Nếu bạn đọc các bản ghi gỡ lỗi (maven CLI tùy chọn -X), bạn sẽ tìm thấy một cái gì đó giống nhưLàm thế nào để phân tích các vấn đề OSGi cấp thấp trong quá trình thực hiện thử nghiệm tycho?

!ENTRY org.eclipse.osgi 2 0 2012-10-08 16:41:31.635 
!MESSAGE The following is a complete list of bundles which are not resolved, see the prior log entry for the root cause if it exists: 
!SUBENTRY 1 org.eclipse.osgi 2 0 2012-10-08 16:41:31.635 
An error has occurred. See the log file 
C:\mytestproject.tests\target\work\configuration\1349705136008.log. 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 12:03.181s 
[INFO] Finished at: Mon Oct 08 16:17:16 CEST 2012 
[INFO] Final Memory: 20M/309M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.eclipse.tycho:tycho-surefire-plugin:0.15.0:test (default-test) on project mytestproject.tests: An unexpected error occured (return c 
ode 13). See log for details. -> [Help 1] 

Các nhật thực console log không cung cấp đủ thông tin trong trường hợp gói sử dụng xung đột.

Làm cách nào để phân tích các gói trong thời gian chạy thử nghiệm OSGi được chia nhỏ bởi tycho?

Trả lời

7

bắt đầu kiểm tra ở chế độ gỡ lỗi từ xa (chỉ cần chỉ định -DdebugPort=8000 trên CLI) và khởi động bàn điều khiển OSGi trên cổng cục bộ, ví dụ: 1234:

 <plugin> 
      <groupId>org.eclipse.tycho</groupId> 
      <artifactId>tycho-surefire-plugin</artifactId> 
      <version>${tycho-version}</version> 
      <configuration> 
       <systemProperties> 
        <osgi.console>1234</osgi.console> 
       </systemProperties> 
      </configuration> 
     </plugin> 

Đặt một breakpoint trong một trong các lớp học thử nghiệm của bạn hoặc trong org/eclipse/Tycho/surefire/osgibooter/OsgiSurefireBooter nếu xét nghiệm thậm chí không bắt đầu. Sau đó,

telnet localhost 1234 

và bạn có thể sử dụng lệnh điều khiển OSGi thông thường như ss, diag, bundle v.v. để phân tích sự cố "in vivo".

+0

Tôi phải thêm một hệ thống bổ sungProperty: true. Với nó làm việc. Cảm ơn. –

0

Hoặc bạn có thể chạy với -consolelog hoặc đặt thuộc tính eclipse.consoleLog thành tài sản true. Nếu bạn đang chạy với Tycho, bạn có thể sử dụng <argLine>-Declipse.consoleLog=true</argLine>.

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