別のコンピュータでビルドされた古いプロジェクトをダウンロードしました。私はJava環境を現在の環境にインストールしています。私も、junitをダウンロードして動作させました。以前に動作していたbuild.rbとrun_test.rbファイルを使用してテストを実行すると、コード全体を否定する多くのエラーが発生します。ここに例がありますjunit - テストが実行されず、多くのエラーが発生する
$ ruby build.rb
shop_basket\Cashdesk.java:4: error: class CashDesk is public, should be
declared in a file named CashDesk.java
public class CashDesk{
^
1 error
shop_basketSpec\CashdeskTest.java:5: error: class CashDeskTest is public,
should be declared in a file named CashDeskTest.java
public class CashDeskTest{
^
shop_basketSpec\BasketTest.java:2: error: package org.junit does not exist
import org.junit.*;
^
shop_basketSpec\BasketTest.java:3: error: package org.junit does not exist
import static org.junit.Assert.*;
^
shop_basketSpec\CashdeskTest.java:2: error: package org.junit does not exist
import org.junit.*;
^
shop_basketSpec\CashdeskTest.java:3: error: package org.junit does not exist
import static org.junit.Assert.*;
^
shop_basketSpec\CashdeskTest.java:7: error: cannot find symbol
CashDesk cashdesk;
^
symbol: class CashDesk
location: class CashDeskTest
shop_basketSpec\CustomerTest.java:2: error: package org.junit does not exist
import org.junit.*;
^
shop_basketSpec\CustomerTest.java:3: error: package org.junit does not
exist
import static org.junit.Assert.*; ^
shop_basketSpec\ProductTest.java:2: error: package org.junit does not exist
import org.junit.*;
^
などです。コード構造全体に関わるように、このようなエラーがさらに発生します。私は理由を知りません。 すべてのCLASSPATHなどがWindows OSに設定されているようです。私のコーディングでは動かすことができないので、全体が刺激的です。ヘルプ
のおかげでここに私の設定CLASSPATHは、最初の場合 CLASSPATH image
私のRubyファイルの内容
run_tests.rb
require 'find'
def find_valid_files
files = []
Find.find('bin') do |path|
files << path if path.include?(".class") && path.include?("Test")
end
return files
end
def run_tests(files)
for file in files
fileName = File.basename(file, ".*")
puts "Running #{fileName}"
system("java org.junit.runner.JUnitCore #{fileName}")
end
end
valid_files = find_valid_files()
Dir.chdir "bin"
run_tests(valid_files)
build.rb
require 'fileutils'
def filter_directories
excluded_directories = ["bin"]
all_files = Dir.glob('*')
return all_files.select do |file|
next if excluded_directories.include?(file)
File.directory?(file)
end
end
def create_bin
FileUtils.rm_rf('bin')
FileUtils.mkdir_p('bin')
end
def run_tests directories
for directory in directories
puts "building #{directory}"
system("javac -d bin #{directory}/*.java")
end
end
create_bin()
valid_directories = filter_directories()
run_tests(valid_directories)
たぶん、あなたは、以前のWindows上に構築され、現在のファイル名は大文字と小文字が区別されます(と一致する必要がありますLinuxの、にファイルをコピーするJUnitのライブラリを含める必要があります意味
error: package org.junit does not exist
クラス名)。また、JUnit jarはクラスパスに含まれていないようです。 –しかし、それはクラスパスにあるようです。プロンプトでset CLASSPATHコマンドを入力すると、junit.jarファイルに至るパス全体が取得されます。私はファイルを実行するためにbashを使用します...おそらくそれは問題です – bwielk
@MickMnemonic - Windowsではファイル名の大文字と小文字は区別されませんが、Javaではまだどのプラットフォームに関係なくクラス名とファイル名が正確に一致する必要があります。 –