SORU
10 AĞUSTOS 2011, ÇARŞAMBA


Eğer, Emma, ClassFormatError ve VerifyError içinde Cobertura, kapsamı ve FIRSATLAR 7 sonuç

Yeni FIRSATLAR 7 açtınız ve emma kapsama aracı ile oynuyordu bayt kodu eğer birim testi ile ilgili sorunlar yaşıyorum. Benim test vakaların hiçbiri böyle hatalar alıyorum en doğru ve çalıştırın.

 java.lang.ClassFormatError: Illegal local variable table length 10 in method measurement.meter.AbstractSerialPortMeter.<init>(Lmeasurement/meter/SerialPort;)V at measurement.meter.Elc3133aTest.setUp(Elc3133aTest.java:42)

Bir makale burada JSR 292 Goodness Fast Code Coverage Tool Less 10k,buldum "genel amaçlı 292 bayt kodu talimat invokedynamic ama aynı zamanda birçok yeni tür sabit havuzu sabitler. yeni bir tanıtır söylüyor. Bytecodes ayrıştırma araçları en KANAMAYLA gibi anlamına gelir, BCEL, findbugs ya da EMMA java 7 uyumlu olacak şekilde güncelleştirilmesi gerekir."

Emma ana kontrol, ama uzun bir süre için güncelleştirilmiş değil gibi görünüyor.

Herkes benzer bir sorunu çözdü mü?

Ayrıca Cobertura ile denedim. Tür özel durumlar VerifyError bir sürü alıyorum biraz daha iyi ama çalışmak görünüyor.

java.lang.VerifyError: Expecting a stackmap frame at branch target 85 in method measurement.meter.AbstractSerialPortMeter.close()V at offset 26
at measurement.meter.AbstractSerialPortMeterTest.setUp(AbstractSerialPortMeterTest.java:27)

CEVAP
6 Mart 2012, Salı


Aynı sorun maven kullanarak cobertura eklenti vardı. Tüm testleri cobertura çalıştırdığınızda başarısız oldu:rapor. Ama tüm testleri doğrudan etkili bir eklenti çalıştırdığınızda başardı. Biraz sizin gibi ben zaten sorun JDK7 ile uyumlu değil o coberture bayt kod araçları olduğunu söyledi.

Burada http://vikashazrati.wordpress.com/2011/10/09/quicktip-verifyerror-with-jdk-7/ özel durum ilgili "StackMapTable özelliğe sahip yeni bir tür denetçisi" (bkz: -X: http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html UseSplitVerifier JVM seçenek) görebilirsiniz.

Benim çözüm surefire-eklenti her zaman JVM arg ile testleri çalıştırmak için yapılandırmak için "-XX:-UseSplitVerifier. İyi cobertura gereçleri olmadan ve çalışıyor.

Benim çok sağlam maven yapılandırma:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.12</version>
    <configuration>
        <argLine>-XX:-UseSplitVerifier</argLine>
    </configuration>
</plugin>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Charles Nesson

    Charles Ness

    27 NİSAN 2006
  • DudeFromUkraine

    DudeFromUkra

    7 Ocak 2008
  • The White House

    The White Ho

    21 Ocak 2006