Ich arbeite an einigen Integrationstests in Groovy. Es gibt ein paar hundert Tests und ich habe die Aufgabe, hartcodierte IDs zugunsten einer einzelnen Datei mit Konstanten zu entfernen. Für etwa 500 der Dateien, funktioniert alles wie erwartet (Danke, grep und sed):MissingPropertyException, obwohl es importiert wird
alt
package com.example.package.tests;
class SomeTest extends BaseGroovyTest {
@Test
public void testSomething() {
def merchantId = "1234"
...
}
}
neue
package com.example.package.tests;
import com.example.package.util.ConstantMerchants
class SomeTest extends BaseGroovyTest {
@Test
public void testSomething() {
def merchantId = ConstantMerchants.MERCHANT_A
...
}
}
: Hardcoded-IDs haben mit einer konstanten ersetzt
ConstantMerchants
package com.example.package.util;
public final class ConstantMerchants {
public static final String MERCHANT_A = "1234";
public static final String MERCHANT_B = "1111";
public static final String MERCHANT_C = "2222";
public static final String MERCHANT_D = "3333";
...
private ConstantMerchants() { }
}
Während jedoch einige Dateien erfolgreich geändert wurden (so die hartcodierte ID wird mit einem Verweis auf ConstantMerchants
ersetzt und ConstantMerchants
importiert), ihre Tests können nicht aufgrund des Fehlers auszuführen:
groovy.lang.MissingPropertyException: No such property: ConstantMerchants for class: com.example.package.tests.SomeTest
I‘ Es wurde mehrmals überprüft, und die einzigen Änderungen an den Dateien sind das Hinzufügen einer Importstation für und das Ersetzen einer String-ID durch ein ConstantMerchants
Pendant.
die Import-Anweisung aus- und dann eclipse es mit hinzufügen, indem Ctrl + Umschalttaste drücken + O (Organisieren Importen) Ergebnisse in der gleichen Datei, die ich vor dem Entfernen der Import-Anweisung hatte, und der Fehler immer noch auftritt.
Jede Hilfe bei der Lösung dieses Problems wäre sehr willkommen!
Ist es konsistent reproduzierbar? Was sind die gdk und jdk Versionen? – Rao
Dieses Problem tritt jedes Mal für die gleichen Tests auf, unabhängig davon, ob ich andere Tests zusammen mit ihnen durchführe. Ich verwende Java SE 1.7 (Ich bin nicht sicher, wie ich Ihnen eine spezifischere Version von Eclipse geben kann) –