无法运行用于构建蚂蚁项目的脚本

问题描述 投票:0回答:1

我正在尝试编写一个脚本,该脚本将通过ant project builder构建项目。

测试运行没有问题。用户类别也很好。但是当我运行build.xml时,出现这些错误。

我将在此处添加此类的User-class和UserTest。

任何人都可以解释此代码有什么问题吗?

Buildfile: /home/alexandr/eclipse-workspace/usermanagement/build.xml
clean:
   [delete] Deleting directory /home/alexandr/eclipse-workspace/usermanagement/bin
init:
    [mkdir] Created dir: /home/alexandr/eclipse-workspace/usermanagement/bin
compile:
    [javac] /home/alexandr/eclipse-workspace/usermanagement/build.xml:19: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 1 source file to /home/alexandr/eclipse-workspace/usermanagement/bin
test-compile:
    [javac] /home/alexandr/eclipse-workspace/usermanagement/build.xml:37: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 1 source file to /home/alexandr/eclipse-workspace/usermanagement/bin
    [javac] /home/alexandr/eclipse-workspace/usermanagement/src/test/java/ua/nure/kn/susidskyi/usermanagement/UserTest.java:7: error: package org.junit.jupiter.api does not exist
    [javac] import org.junit.jupiter.api.BeforeEach;
    [javac]                             ^
    [javac] /home/alexandr/eclipse-workspace/usermanagement/src/test/java/ua/nure/kn/susidskyi/usermanagement/UserTest.java:8: error: package org.junit.jupiter.api does not exist
    [javac] import org.junit.jupiter.api.Test;
    [javac]                             ^
    [javac] /home/alexandr/eclipse-workspace/usermanagement/src/test/java/ua/nure/kn/susidskyi/usermanagement/UserTest.java:10: error: package junit.framework does not exist
    [javac] import junit.framework.TestCase;
    [javac]                       ^
    [javac] /home/alexandr/eclipse-workspace/usermanagement/src/test/java/ua/nure/kn/susidskyi/usermanagement/UserTest.java:12: error: cannot find symbol
    [javac] public class UserTest extends TestCase {
    [javac]                               ^
    [javac]   symbol: class TestCase
    [javac] /home/alexandr/eclipse-workspace/usermanagement/src/test/java/ua/nure/kn/susidskyi/usermanagement/UserTest.java:15: error: cannot find symbol
    [javac]     @BeforeEach
    [javac]      ^
    [javac]   symbol:   class BeforeEach
    [javac]   location: class UserTest
    [javac] /home/alexandr/eclipse-workspace/usermanagement/src/test/java/ua/nure/kn/susidskyi/usermanagement/UserTest.java:17: error: cannot find symbol
    [javac]         super.setUp();
    [javac]         ^
    [javac]   symbol:   variable super
    [javac]   location: class UserTest
    [javac] /home/alexandr/eclipse-workspace/usermanagement/src/test/java/ua/nure/kn/susidskyi/usermanagement/UserTest.java:22: error: cannot find symbol
    [javac]         assertEquals("Соседский Александр", user.getFullName());
    [javac]         ^
    [javac]   symbol:   method assertEquals(String,String)
    [javac]   location: class UserTest
    [javac] /home/alexandr/eclipse-workspace/usermanagement/src/test/java/ua/nure/kn/susidskyi/usermanagement/UserTest.java:26: error: cannot find symbol
    [javac]         assertEquals(19, user.getAge());
    [javac]         ^
    [javac]   symbol:   method assertEquals(int,int)
    [javac]   location: class UserTest
    [javac] /home/alexandr/eclipse-workspace/usermanagement/src/test/java/ua/nure/kn/susidskyi/usermanagement/UserTest.java:33: error: cannot find symbol
    [javac]         assertEquals(0, user.getAge());
    [javac]         ^
    [javac]   symbol:   method assertEquals(int,int)
    [javac]   location: class UserTest
    [javac] /home/alexandr/eclipse-workspace/usermanagement/src/test/java/ua/nure/kn/susidskyi/usermanagement/UserTest.java:41: error: cannot find symbol
    [javac]         assertEquals(-1, user.getAge());
    [javac]         ^
    [javac]   symbol:   method assertEquals(int,int)
    [javac]   location: class UserTest
    [javac] /home/alexandr/eclipse-workspace/usermanagement/src/test/java/ua/nure/kn/susidskyi/usermanagement/UserTest.java:49: error: cannot find symbol
    [javac]         assertEquals(0, user.getAge());
    [javac]         ^
    [javac]   symbol:   method assertEquals(int,int)
    [javac]   location: class UserTest
    [javac] /home/alexandr/eclipse-workspace/usermanagement/src/test/java/ua/nure/kn/susidskyi/usermanagement/UserTest.java:57: error: cannot find symbol
    [javac]         assertEquals(0, user.getAge());
    [javac]         ^
    [javac]   symbol:   method assertEquals(int,int)
    [javac]   location: class UserTest
    [javac] 12 errors

BUILD FAILED
/home/alexandr/eclipse-workspace/usermanagement/build.xml:37: Compile failed; see the compiler error output for details.

Total time: 3 seconds

build.xml

<?xml version="1.0" encoding="UTF-8"?>

<project name="usermanagement" basedir="." default="test">

  <property name="test-java-dir" value="${basedir}/src/test/java" />
  <property name="main-java-dir" value="${basedir}/src/main/java" />
  <property name="build-dir" value="${basedir}/bin" />
  <property name="lib-dir" value="${basedir}/lib" />

      <target name="clean">
        <delete dir="${build-dir}" />
      </target>

      <target name="init" depends="clean">
        <mkdir dir="${build-dir}" />
      </target>

      <target name="compile" depends="init">
        <javac srcdir="${main-java-dir}" destdir="${build-dir}"/>
      </target>

  <target name="test" depends="test-compile, compile" description="description">
    <junit>
      <classpath>
        <pathelement location="${build-dir}" />
        <fileset dir="${lib-dir}">
          <include name="**/junit.jar" />
        </fileset>
      </classpath>
      <test name="ua.nure.kn.susidskyi.usermanagement.UserTest" />
      <formatter type="plain" />
    </junit>
  </target>


  <target name="test-compile" depends="compile">
    <javac srcdir="${test-java-dir}" destdir="${build-dir}">
      <classpath>
        <path id="org.junit" location="${lib-dir}/junit.jar" />
      </classpath>
    </javac>
  </target>

</project>

用户类别

package ua.nure.kn.susidskyi.usermanagement;

import java.util.Date;
import java.io.Serializable;
import java.util.Calendar;

public class User implements Serializable{
    private static final long serialVersionUID = -112812758632339479L;
    private Long id;
    private String firstName;
    private String lastName;
    private Date dateOfBirth;

    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
    public Date getDateOfBirth() {
        return dateOfBirth;
    }
    public void setDateOfBirth(Date dateOfBirth) {
        this.dateOfBirth = dateOfBirth;
    }

    public User(Long id, String firstName, String lastName, Date dateOfBirth) {
        super();
        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
        this.dateOfBirth = dateOfBirth;
    }

    public String getFullName() {
        return getLastName() + " " + getFirstName();
    }   
    public int getAge() {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        int currentYear = calendar.get(Calendar.YEAR);
        int currentDay = calendar.get(Calendar.DAY_OF_MONTH);
        int currentMonth = calendar.get(Calendar.MONTH);
        calendar.setTime(getDateOfBirth());
        int birthYear = calendar.get(Calendar.YEAR);
        int birthDay = calendar.get(Calendar.DAY_OF_MONTH);
        int birthMonth = calendar.get(Calendar.MONTH);
        int age = currentYear - birthYear;
        if ((currentMonth == birthMonth && currentDay < birthDay) || currentMonth <  birthMonth ) {
            return age;
        }   
        else if(currentDay == birthDay && currentMonth == birthMonth) {
            return age;
        }
        else if(currentYear < birthYear || (currentYear == birthYear && birthMonth > currentMonth) || 
                (currentYear == birthYear && birthMonth == currentMonth && birthDay > currentDay)) {
            return -age;
        }
        else {
            return age;
        }       
     }
}

UserTest用于用户类别

package ua.nure.kn.susidskyi.usermanagement;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import junit.framework.TestCase;

public class UserTest extends TestCase {

    private User user;
    @BeforeEach
    protected void setUp() throws Exception {
        super.setUp();
        user = new User(1L, "Александр", "Соседский", new SimpleDateFormat("d-MM-yyyy").parse("11-09-2000"));
    }

    public void testGetFullName() {
        assertEquals("Соседский Александр", user.getFullName());
    }

    public void testGetAge() {
        assertEquals(19, user.getAge());
    }

    public void testGetAgeBirthdayToday() {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        user.setDateOfBirth(calendar.getTime());
        assertEquals(0, user.getAge());
    }

    public void testGetAgeBirthdayLater() {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        calendar.add(Calendar.YEAR, 1);
        user.setDateOfBirth(calendar.getTime());
        assertEquals(-1, user.getAge());
    }

    public void testGetAgeThisMonthEarlier() {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        calendar.add(Calendar.DATE, -2);
        user.setDateOfBirth(calendar.getTime());
        assertEquals(0, user.getAge());
    }

    public void testGetAgeDayThisMonthLater() {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        calendar.add(Calendar.DATE, 2);
        user.setDateOfBirth(calendar.getTime());
        assertEquals(0, user.getAge());
    }
}

java eclipse ant
1个回答
0
投票

您正在尝试使用JUnit Jupiter API中的类,但您仅在类路径中包括了普通的JUnit jar。

您可以在这里找到所需的罐子:https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api

然后您可以将其包含在测试编译中:

<target name="test-compile" depends="compile">
  <javac srcdir="${test-java-dir}" destdir="${build-dir}">
    <classpath>
      <path location="${lib-dir}/junit.jar" />
      <path location="${lib-dir}/junit-jupiter-api.jar" />
    </classpath>
  </javac>
</target>
© www.soinside.com 2019 - 2024. All rights reserved.