2014-01-24 21 views
6

Ich habe dieses Projekt vorher ohne Schwierigkeiten importiert. Ich bin mir nicht sicher, was sich geändert hat.Warum bekomme ich "Kann Symbol nicht auflösen"?

Ich klicke Import Project und ausgewählt getting-started-with-selenium (http://github.com/ddavison/getting-started-with-selenium), die ein Maven-Projekt ist, und ein altes Eclipse-Projekt. Ich klickte auf das Verzeichnis, dann in der "Select libraries" oder was auch immer, ich wählte Maven.

ich meine Build-Pfad geändert haben richtig zu passen ...

src/ 
    main/ 
    java/ <-- source folder. 

    tests/ 
    java/ <-- tests folder. 

Aber noch, bekomme ich "Cannot resolve symbol 'After'" Auch wenn in den Maven Bibliotheken, ich habe es deutlich zu sehen. enter image description here

Lassen Sie mich wissen, ob weitere Informationen benötigt werden.

+3

Können wir Ihr POM sehen? Meine erste Vermutung wäre, dass Sie junit auf "test" beschränkt haben, aber versehentlich 'AutomationTest' in' src/main' gesetzt haben. –

+0

Das war es Mark ... Ich hatte ' Tests' Gehen Sie voran und markieren Sie das als Antwort. – sircapsalot

+0

[This] (https://www.jetbrains.com/idea/help/configuring-testing-libraries.html) löste das Problem für mich. Siehe auch [this.] (Http://stackoverflow.com/a/4757951/183704) –

Antwort

9

Stellen Sie sicher, dass, wenn JUnit als <scope>test</scope> deklariert ist, dass Ihre Testklasse in src/test ist, andernfalls wird es die Abhängigkeit nicht sehen können.

+0

nicht verwandt, aber wenn Sie mit intellij vertraut sind (ich habe es gerade erst für mich selbst ausprobiert) könnten Sie vielleicht einen Einblick geben, warum ich musste sogar die Junitabhängigkeit hinzufügen? Wenn Sie sich http://github.com/ddavison/getting-started-with-selenium/tree/master/pom.xml ansehen, können Sie sehen, dass ich nicht einmal junit als dep habe. Aber Intellij hatte vorher kein Problem. Ich vermute, dass ich das Projekt nicht korrekt importiert habe. Vielleicht sollte ich das '.project' für Eclipse-Projekte das nächste Mal importieren und dann Maven-Unterstützung manuell hinzufügen? – sircapsalot

+2

@sircapsalot: Da IntelliJ über integrierte Unterstützung für JUnit verfügt, wurde möglicherweise automatisch JUnit als Nicht-Maven-Modulabhängigkeit hinzugefügt, und Ihre pom.xml wurde ignoriert. Zum Beispiel habe ich ein Maven-Projekt ohne JUnit in der pom.xml. Ich erstelle einen neuen JUnit4-Test über IntelliJ. '@ Test' kennzeichnet einen Fehler, also benutze ich Alt-Enter. Der erste Autofix-Vorschlag besteht darin, "junit.jar zum Klassenpfad hinzuzufügen" (nicht über Maven). Ein späterer Autofix-Vorschlag ist "Maven-Abhängigkeit hinzufügen", was die pom.xml tatsächlich ändern würde. Wenn Sie den ersten auswählen, wird die Testklasse beim Maven-Aufbau nicht kompiliert. –

5

Stellen Sie sicher, dass Sie das Projekt über Maven (dh über die Befehlszeile) über mvn clean compile kompilieren können.

Wenn dies zu Fehlern führt, vergewissern Sie sich, dass die Junit-Abhängigkeit im POM richtig definiert ist.

Wenn das keine Fehler erzeugt, weiß IntelliJ nicht, wo sich die neuen Bibliotheken befinden.

Um das zu beheben, gehen Sie einfach auf die Registerkarte Maven-Projekte im Hauptfenster und klicken Sie auf die Schaltfläche "Generate Sources and Update-Ordner für alle Projekte". Dann drücken Sie "Reimport All Maven Projects", die neben der vorherigen Schaltfläche ist.

Verwandte Themen