2016-07-12 49 views
6

Normalde Eclipse eklentisinde (4.5.2) kayıtlı basit bir görünüm var ve eklenti ile Eclipse örneğini başlattığımda çalışıyor. I Tycho (0.22, 0.24 ya da 0.25) ile aynı testi OysaNullPointerException WorkbenchPage.busyShowView

@Before 
public void setUp() throws Exception { 
    IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); 
    for (IViewReference viewReference : activePage.getViewReferences()) { 
     activePage.hideView(viewReference); 
    } 
    activePage.showView("org.acme.MyView"); 
} 

, aşağıdaki durum alır:

java.lang.NullPointerException: null 
    at org.eclipse.ui.internal.WorkbenchPage.busyShowView(WorkbenchPage.java:1271) 
    at org.eclipse.ui.internal.WorkbenchPage$12.run(WorkbenchPage.java:4238) 
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) 
    at org.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:4234) 
    at org.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:4214) 
    at org.acme.MyViewTest.setUp(MyViewTest.java:39) 
hala aşağıdaki yöntem bulunmaktadır gelen test durumunda, çalışır

Tycho kodu basittir:

<plugin> 
    <groupId>org.eclipse.tycho</groupId> 
    <artifactId>tycho-surefire-plugin</artifactId> 
    <configuration> 
     <providerHint>junit4</providerHint> 
     <useUIHarness>true</useUIHarness> 
    </configuration> 
</plugin> 

Ben this bug bulundu ve birkaç tane daha, ama bu sadece Tycho başarısız olur nedenini açıklayan hiçbir şey bulunamadı. Ve bunu düzeltmek için hiçbir şey bulamadım.

Neyi yanlış yaptım? Nasıl düzeltebilirim?

cevap

3

Benim tahminim, tam zamanlı Eclipse çalışma tezgahının gerektirdiği deneme yürütme süresinde eksik olan ve PDE'nin eklediği bir şeydir, ancak Tycho bunu yapmaz. (Varsayılan olarak, Tycho sadece deney çalışma zamanına senin eclipse-test-plugin arasında (geçişli) bağımlılıkları ekler.)

deneyin ekleyerek tycho-surefire-plugin yürütme için aşağıdaki: Bu içine eklentileri bir sürü çekilmesi gerektiğini

<configuration> 
    <!-- ... -> 
    <dependencies> 
    <dependency> 
     <artifactId>org.eclipse.e4.rcp</artifactId> 
     <type>eclipse-feature</type> 
    </dependency> 
    </dependencies> 
</configuration> 

senin aksi halde mevcut olmayabilen test çalışma zamanı (normalde doğrudan veya dolaylı olarak bağımlı olmayan testler gibi org.eclipse.e4.core.di gibi).

Elbette, yukarıdaki yalnızca, org.eclipse.e4.rcp özelliğinin hedef platformunuzun bir parçası olması durumunda çalışır.

+0

Aynı problem vardı, çözüm ilk denemede çalıştı. Çok teşekkür ederim! –