算法第0x00天 - windows+junit
- 今天这篇主要是准备环境,不涉及题目。
- 只用IDE, linux, mac osx 的亲,请绕过。
- 对于 old school 编辑器偏好的,请继续看。
安装配置 java
下载 openjdk 8 zip 包
openjdk-8u42-b03-windows-i586-14_jul_2022.zip
解压放进 C:\dev\
配置 jdk
md %USERPROFILE%\src\alg2022\bin\
pushd %USERPROFILE%\src\alg2022\bin\
notepad javaenv.bat
javaenv.bat 内容如下
pushd C:\dev\java-se-8u42-ri
set JAVA_HOME=%CD%
set JAVA_TOOL_OPTIONS=-Duser.language=en -Dfile.encoding=UTF-8
set PATH=%JAVA_HOME%\bin;%PATH%
md %USERPROFILE%\src\alg2022\bin\
pushd %USERPROFILE%\src\alg2022\bin\
notepad alg2022.bat
alg2022.bat 内容如下
%comspec% /k %USERPROFILE%\src\alg2022\bin\javaenv.bat
配置 junit
md %USERPROFILE%\src\alg2022\libs
explorer %USERPROFILE%\src\alg2022\libs
下载 junit jar 包
junit-4.3.1.jar
解压放进 %USERPROFILE%\src\alg2022\libs
生成 javacc.bat
md %USERPROFILE%\src\alg2022\bin\
pushd %USERPROFILE%\src\alg2022\bin\
set PATH=%CD%;%PATH%
notepad javacc.bat
javacc.bat 内容如下
set name=%~n1
set cpoption=-cp .;..\libs\junit-4.3.1.jar;%CLASSPATH%
javac %cpoption% %name%.java
生成 javarun.bat
md %USERPROFILE%\src\alg2022\bin\
pushd %USERPROFILE%\src\alg2022\bin\
set PATH=%CD%;%PATH%
notepad javarun.bat
javarun.bat 内容如下
set name=%~n1
set cpoption=-cp .;..\libs\junit-4.3.1.jar;%CLASSPATH%
java %cpoption% %name%
生成 Solution 类文件
md %USERPROFILE%\src\alg2022\solution0x01\
pushd %USERPROFILE%\src\alg2022\solution0x01\
notepad Solution.java
class Solution {
public int[] twoSum(int[] nums, int target) {
}
}
javacc.bat Solution.java
生成 Test Case 文件
md %USERPROFILE%\src\alg2022\solution0x01\
pushd %USERPROFILE%\src\alg2022\solution0x01\
notepad SolutionTest.java
import static org.junit.Assert.*;
import org.junit.Test;
public class SolutionTest{
@Test
public void test_pass(){
int expect=1;
int actual=1;
assertEquals(expect,actual);
}
@Test
public void test_failed(){
int expect=0;
int actual=1;
assertEquals(expect,actual);
}
}
javacc.bat SolutionTest.java
生成 Test Runner 文件
md %USERPROFILE%\src\alg2022\solution0x01\
pushd %USERPROFILE%\src\alg2022\solution0x01\
notepad SolutionRunner.java
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class SolutionRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(SolutionTest.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println("Result=="+result.wasSuccessful());
}
}
javacc.bat SolutionRunner.java
javarun.bat SolutionRunner.java
Picked up JAVA_TOOL_OPTIONS: -Duser.language=en -Dfile.encoding=UTF-8
test_failed(SolutionTest): expected:<0> but was:<1>
Result==false
参考
- jdk.java.net/java-se-ri/… (openjdk 8)
- sourceforge.net/projects/ju…
- leetcode-cn.com/problems/tw… (leetcode第0x01题)