Avatar billede cvpcvp Nybegynder
24. maj 2004 - 13:22 Der er 9 kommentarer og
2 løsninger

JUnit, Ant og Maven

Jeg er ved at få JUnit, ant og maven til at spille sammen.

Jeg har fundet en startguide på: http://ant.apache.org/manual/tutorial-writing-tasks.html

Mit problem er at jeg ikke kan få Junit til at virke sammen med Maven.
Jeg har hentet filen ant-testutil.jar som der skrives men når jeg builder kommer der compiler errors:

Buildfile: build.xml
compile:
    [mkdir] Created dir: C:\work\maven\helloworld\classes
    [javac] Compiling 2 source files to C:\work\maven\helloworld\classes
    [javac] C:\work\maven\helloworld\src\HelloWorldTest.java:3: cannot access ju
nit.framework.TestCase
    [javac] file junit\framework\TestCase.class not found
    [javac] public class HelloWorldTest extends BuildFileTest {
    [javac]        ^
    [javac] C:\work\maven\helloworld\src\HelloWorldTest.java:11: cannot resolve
symbol
    [javac] symbol  : method configureProject (java.lang.String)
    [javac] location: class HelloWorldTest
    [javac]        configureProject("build.xml");
    [javac]        ^
    [javac] C:\work\maven\helloworld\src\HelloWorldTest.java:15: cannot resolve
symbol
    [javac] symbol  : method executeTarget (java.lang.String)
    [javac] location: class HelloWorldTest
    [javac]        executeTarget("use.without");
    [javac]        ^
    [javac] C:\work\maven\helloworld\src\HelloWorldTest.java:16: cannot resolve
symbol
    [javac] symbol  : method getLog ()
    [javac] location: class HelloWorldTest
    [javac]        assertEquals("Message was logged but should not.", getLog(),
"");
    [javac]                                                            ^
    [javac] C:\work\maven\helloworld\src\HelloWorldTest.java:22: cannot resolve
symbol
    [javac] symbol  : method expectLog (java.lang.String,java.lang.String)
    [javac] location: class HelloWorldTest
    [javac]        expectLog("use.message", "attribute-text");
    [javac]        ^
    [javac] C:\work\maven\helloworld\src\HelloWorldTest.java:28: cannot resolve
symbol
    [javac] symbol  : method expectBuildException (java.lang.String,java.lang.St
ring)
    [javac] location: class HelloWorldTest
    [javac]        expectBuildException("use.fail", "Fail requested.");
    [javac]        ^
    [javac] C:\work\maven\helloworld\src\HelloWorldTest.java:32: cannot resolve
symbol
    [javac] symbol  : method expectLog (java.lang.String,java.lang.String)
    [javac] location: class HelloWorldTest
    [javac]        expectLog("use.nestedText", "nested-text");
    [javac]        ^
    [javac] C:\work\maven\helloworld\src\HelloWorldTest.java:36: cannot resolve
symbol
    [javac] symbol  : method executeTarget (java.lang.String)
    [javac] location: class HelloWorldTest
    [javac]        executeTarget("use.nestedElement");
    [javac]        ^
    [javac] C:\work\maven\helloworld\src\HelloWorldTest.java:37: cannot resolve
symbol
    [javac] symbol  : method assertLogContaining (java.lang.String)
    [javac] location: class HelloWorldTest
    [javac]        assertLogContaining("Nested Element 1");
    [javac]        ^
    [javac] C:\work\maven\helloworld\src\HelloWorldTest.java:38: cannot resolve
symbol
    [javac] symbol  : method assertLogContaining (java.lang.String)
    [javac] location: class HelloWorldTest
    [javac]        assertLogContaining("Nested Element 2");
    [javac]        ^
    [javac] 10 errors

BUILD FAILED

jeg ved ikke rigtig om det er min placering af ant-testutil.jar der er forkert eller hvad det er. Jeg kan ikke lige hitte ud af det. håber i kan hjælpe.
Avatar billede simonvalter Praktikant
24. maj 2004 - 20:24 #1
det ser ud som om at du mangler noget i din classpath

nu ved jeg ikke lige hvad  ant-testutil.jar er, men hvis det er et eller andet "addon" som nogen har lavet til ant kan du ligge det i
C:\antmappen\lib
Avatar billede arne_v Ekspert
24. maj 2004 - 22:22 #2
junit.jar skal måske også over i den mappe
Avatar billede cvpcvp Nybegynder
25. maj 2004 - 08:43 #3
Jeg har lagt junit ind i antmappen\lib så nu virker testen med ant...

Så mangler jeg bare at få den til at virke med Maven....
Jeg har også prøvet at sætte junit ind i mavenmappen\lib, men det virker ikke....

På maven får jeg følgende fejl meddelelse:

C:\work\maven\daven>maven jar

build:start:

java:prepare-filesystem:

java:compile:
    [echo] Compiling to C:\work\maven\daven/target/classes
    [javac] Compiling 2 source files to C:\work\maven\daven\target\classes
C:\work\maven\daven\src\java\smartsoft\daven\BoxTest.java:3: package junit.frame
work does not exist
import junit.framework.TestCase;
                      ^
C:\work\maven\daven\src\java\smartsoft\daven\BoxTest.java:5: cannot resolve symb
ol
symbol  : class TestCase
location: class smartsoft.daven.BoxTest
public class BoxTest extends TestCase{
                            ^
C:\work\maven\daven\src\java\smartsoft\daven\BoxTest.java:9: cannot resolve symb
ol
symbol  : method assertEquals (int,int)
location: class smartsoft.daven.BoxTest
        assertEquals(4,b.getArea());
        ^
3 errors

BUILD FAILED
File...... file:/C:/Documents and Settings/cpe/.maven/plugins/maven-java-plugin-
1.3/plugin.jelly
Element... ant:javac
Line...... 34
Column.... 48
Compile failed; see the compiler error output for details.
Total time: 4 seconds
Finished at: Tue May 25 08:42:29 CEST 2004
Avatar billede cvpcvp Nybegynder
25. maj 2004 - 09:48 #4
Jeg har fundet ud af det... det var opsætningen i project.xml der ikke var helt korrekt...
her er den hvis der er andre der skal bruge den..:
<project>
    <!-- general information -->
    <pomVersion>3</pomVersion>
    <groupId>Maven Start</groupId>
    <id>daven</id>
    <name>Hello world</name>
    <currentVersion>1.0</currentVersion>
    <organization></organization>
    <inceptionYear>2004</inceptionYear>
    <description>This is a hello world example with maven made by </description>
    <shortDescription>Maven Hello World</shortDescription>

    <!-- developer information -->
    <developers>
    <developer>
      <name></name>
      <id></id>
      <email></email>
    </developer>
    </developers>
    <!-- build information -->
    <build>
        <sourceDirectory>
            ${basedir}/src/java
        </sourceDirectory>
    <unitTestSourceDirectory>
        ${basedir}/src/test
    </unitTestSourceDirectory>
    </build>

    <!-- dependency information -->
    <dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
    </dependency>
    </dependencies>   
</project>

Det virker i hvert tilfælde....
I kan lige ligge et svar så i kan få nogle point..
Og tak for hjælpen...
Avatar billede arne_v Ekspert
25. maj 2004 - 11:09 #5
svar
Avatar billede simonvalter Praktikant
25. maj 2004 - 11:40 #6
ok, kan du egentligt fortælle mig hvorfor du bruge både maven og ant... er det ikke 2 programmer hvis opgave er den samme?
Avatar billede arne_v Ekspert
25. maj 2004 - 12:11 #7
ant er et build tool

maven er et projekt styrings tool

projekt styring indholder build og mere

maven bruger ant
Avatar billede simonvalter Praktikant
25. maj 2004 - 12:13 #8
ok
Avatar billede cvpcvp Nybegynder
26. maj 2004 - 09:10 #9
Man kan godt bruge maven uden at bruge ant skal det lige siges, der er også bygget build ting ind i maven på Maven :-)
Var bare ved at undersøge de forskellige værktøjer, hvad de kan bruges til og sådan noget...
Avatar billede arne_v Ekspert
28. maj 2004 - 21:25 #10
Det er anden bullet point her:
  http://maven.apache.org/features.html
som har givet mig det indtryk.
Avatar billede cvpcvp Nybegynder
03. juni 2004 - 08:14 #11
Der er ikke rigtig skrevet noget om det endnu. men jeg regner med at det kommer til at være her:
http://maven.apache.org/ant-guide/index.html

Man kan bruge ant og maven sammen eller man kan bruge dem hver for sig...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester