Невозможно запустить скрипт для построения проектов Ant - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь написать скрипт, который будет создавать проект с помощью 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());
    }
}

1 Ответ

0 голосов
/ 14 октября 2019

Вы пытаетесь использовать классы из JUnit Jupiter API, но в свой путь к классу включаете только обычный JUnit jar.

Вы можете найти нужный вам 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...