gpt4 book ai didi

java - 无法运行构建 Ant 项目的脚本

转载 作者:行者123 更新时间:2023-12-01 23:10:34 24 4
gpt4 key购买 nike

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

测试运行没有问题。用户等级也很好。但是当我运行 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());
}
}

最佳答案

您正在尝试使用 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>

关于java - 无法运行构建 Ant 项目的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58378172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com