我有如下的目录结构: testant
-src
-my
-example
-ant
Calculator.java
-test
-my
-example
-ant
TestCalculator.java
其中Calculator.java的代码如下:
package my.example.ant;
public class Calculator
{
public double add(double number1,double number2)
{
return number1+number2;
}
public double sub(double number1,double number2)
{
return number1-number2;
}
public double mul(double number1,double number2)
{
return number1*number2;
}
}
TestCalculator.java中代码如下:
package my.example.ant;
import static org.junit.Assert.*;
import org.junit.*;
public class TestCalculator{
@Test
public void testAdd(){
Calculator calc=new Calculator();
double result=calc.add(10,20);
assertEquals(30.0,result,0);
}
}
我无法编译TestCalculator,总是提示我Calculator这个标识符找不到,请教各位,这是怎么回事?
这个源代码和测试代码分开在不同的目录,但是包路径相同,为什么总是编译不过呢?
我是用ant来编译的,build.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<project name="HelloWorld" default="compiletest" basedir=".">
<property name="src" value="src"/>
<property name="dest" value="classes"/>
<property name="build" value="lib"/>
<property name="hello_jar" value="hello.jar"/>
<property name="test" value="test"/>
<property name="testdest" value="testclasses"/> <target name="init">
<mkdir dir="${testdest}"/>
<mkdir dir="${dest}"/>
<mkdir dir="${build}"/>
</target> <target name="compile" depends="init">
<javac srcdir="${src}"
destdir="${dest}"/>
</target> <target name="compiletest" depends="compile">
<javac srcdir="${test}"
destdir="${testdest}"/>
</target> <target name="build" depends="compile">
<jar jarfile="${build}/${hello_jar}"
basedir="${dest}"/>
</target>
<target name="run" depends="build">
<java classname="my.example.ant.HelloWorld"
classpath="${dest}"
/>
</target> <target name="clean">
<delete dir="${dest}"/>
<delete dir="${build}"/>
<delete dir="${testdest}"/>
</target> <target name="rerun" depends="clean,run">
<ant target="clean"/>
<ant target="run"/>
</target>
</project>总是提示我在TestCalculator中找不到Calculator。ant后的提示如下:E:\anttest>ant
Buildfile: build.xmlinit:
[mkdir] Created dir: E:\anttest\testclasses
[mkdir] Created dir: E:\anttest\classes
[mkdir] Created dir: E:\anttest\libcompile:
[javac] Compiling 1 source file to E:\anttest\classescompiletest:
[javac] Compiling 1 source file to E:\anttest\testclasses
[javac] E:\anttest\test\my\example\ant\TestCalculator.java:7: 找不到符号
[javac] 符号: 类 Calculator
[javac] 位置: 类 my.example.ant.TestCalculator
[javac] Calculator calc=new Calculator();
[javac] ^
[javac] E:\anttest\test\my\example\ant\TestCalculator.java:7: 找不到符号
[javac] 符号: 类 Calculator
[javac] 位置: 类 my.example.ant.TestCalculator
[javac] Calculator calc=new Calculator();
[javac] ^
[javac] 2 错误BUILD FAILED
E:\anttest\build.xml:23: Compile failed; see the compiler error output for detai
ls.Total time: 1 second
-src
-my
-example
-ant
Calculator.java
-test
-my
-example
-ant
TestCalculator.java
其中Calculator.java的代码如下:
package my.example.ant;
public class Calculator
{
public double add(double number1,double number2)
{
return number1+number2;
}
public double sub(double number1,double number2)
{
return number1-number2;
}
public double mul(double number1,double number2)
{
return number1*number2;
}
}
TestCalculator.java中代码如下:
package my.example.ant;
import static org.junit.Assert.*;
import org.junit.*;
public class TestCalculator{
@Test
public void testAdd(){
Calculator calc=new Calculator();
double result=calc.add(10,20);
assertEquals(30.0,result,0);
}
}
我无法编译TestCalculator,总是提示我Calculator这个标识符找不到,请教各位,这是怎么回事?
这个源代码和测试代码分开在不同的目录,但是包路径相同,为什么总是编译不过呢?
我是用ant来编译的,build.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<project name="HelloWorld" default="compiletest" basedir=".">
<property name="src" value="src"/>
<property name="dest" value="classes"/>
<property name="build" value="lib"/>
<property name="hello_jar" value="hello.jar"/>
<property name="test" value="test"/>
<property name="testdest" value="testclasses"/> <target name="init">
<mkdir dir="${testdest}"/>
<mkdir dir="${dest}"/>
<mkdir dir="${build}"/>
</target> <target name="compile" depends="init">
<javac srcdir="${src}"
destdir="${dest}"/>
</target> <target name="compiletest" depends="compile">
<javac srcdir="${test}"
destdir="${testdest}"/>
</target> <target name="build" depends="compile">
<jar jarfile="${build}/${hello_jar}"
basedir="${dest}"/>
</target>
<target name="run" depends="build">
<java classname="my.example.ant.HelloWorld"
classpath="${dest}"
/>
</target> <target name="clean">
<delete dir="${dest}"/>
<delete dir="${build}"/>
<delete dir="${testdest}"/>
</target> <target name="rerun" depends="clean,run">
<ant target="clean"/>
<ant target="run"/>
</target>
</project>总是提示我在TestCalculator中找不到Calculator。ant后的提示如下:E:\anttest>ant
Buildfile: build.xmlinit:
[mkdir] Created dir: E:\anttest\testclasses
[mkdir] Created dir: E:\anttest\classes
[mkdir] Created dir: E:\anttest\libcompile:
[javac] Compiling 1 source file to E:\anttest\classescompiletest:
[javac] Compiling 1 source file to E:\anttest\testclasses
[javac] E:\anttest\test\my\example\ant\TestCalculator.java:7: 找不到符号
[javac] 符号: 类 Calculator
[javac] 位置: 类 my.example.ant.TestCalculator
[javac] Calculator calc=new Calculator();
[javac] ^
[javac] E:\anttest\test\my\example\ant\TestCalculator.java:7: 找不到符号
[javac] 符号: 类 Calculator
[javac] 位置: 类 my.example.ant.TestCalculator
[javac] Calculator calc=new Calculator();
[javac] ^
[javac] 2 错误BUILD FAILED
E:\anttest\build.xml:23: Compile failed; see the compiler error output for detai
ls.Total time: 1 second
<?xml version="1.0" encoding="UTF-8" ?>
<project name="HelloWorld" default="compiletest" basedir=".">
<property name="src" value="src"/>
<property name="dest" value="classes"/>
<property name="build" value="lib"/>
<property name="hello_jar" value="hello.jar"/>
<property name="test" value="test"/>
<property name="testdest" value="testclasses"/> <target name="init">
<mkdir dir="${testdest}"/>
<mkdir dir="${dest}"/>
<mkdir dir="${build}"/>
</target> <target name="compile" depends="init">
<javac srcdir="${src}"
destdir="${dest}"/>
</target> <target name="compiletest" depends="compile">
<javac srcdir="${test}"
destdir="${dest}"/>
</target> <target name="build" depends="compile">
<jar jarfile="${build}/${hello_jar}"
basedir="${dest}"/>
</target> <target name="run" depends="build">
<java classname="my.example.ant.HelloWorld"
classpath="${dest}"
/>
</target> <target name="clean">
<delete dir="${dest}"/>
<delete dir="${build}"/>
<delete dir="${testdest}"/>
</target> <target name="rerun" depends="clean,run">
<ant target="clean"/>
<ant target="run"/>
</target>
</project>
你把test放到testclass 把src放到class他们之间肯定不能互相读到 所以就出现了那个错误