Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TargetProjectの再検討 #38

Closed
shinsuke-mat opened this issue May 17, 2018 · 2 comments
Closed

TargetProjectの再検討 #38

shinsuke-mat opened this issue May 17, 2018 · 2 comments

Comments

@shinsuke-mat
Copy link
Member

shinsuke-mat commented May 17, 2018

TargetProjectの持つべき要素が足りておらず,テスト実行で困っている.例えば,TargetProjectの中身が以下だとして,

sourceFiles: ["../example01/src/jp/kusu/X.java"]      //便宜上相対パスに.絶対パスでも可
testFiles:   ["../example01/src/jp/kusu/XTest.java"] 

どこがプロジェクトのルート(../example01)で,どこがソースディレクトリ(src)か区別できない.テスト実行ではソースコードの限定名(jp.kusu.X)で処理するので,上記の区別が必須.

そもそも TargetProjectの情報 ∋ .classpathの情報 + .projectの情報 であるべき.よって最低限以下を追加すべき.

  • ルートディレクトリへのパス
  • ソースコードディレクトリへのパス(複数)
  • JUnitのバージョン

JUnitのバージョンはひとまずどうでも良い.各種パスをどう表現するを考えたい.TargetProjectは複数クラスに依存しており,さらにCLI(=UI)を左右する要因になるので,きちんと考えるべき.

@shinsuke-mat
Copy link
Member Author

案A

rootDir:     "../example01"
sourcePaths: ["src/main", "src/test"]
sourceFiles: ["jp/kusu/X.java"]
testFiles:   ["jp/kusu/XTest.java"]

シンプルで良さそうに見えるが,"jp/kusu/xTest.java" が,"src/main" の下にあるのか,"src/test" の下なのか一意に判別できない.ツリーの親子関係にN対Nはまずいだろう.

案B

rootDir:     "../example01"
sourcePaths: ["src/main", "src/test"]
sourceFiles: ["../example01/src/main/jp/kusu/X.java"]
testFiles:   ["../example01/src/test/jp/kusu/XTest.java"]

案Aの問題は解決する.問題は sourcePaths だけがカレントディレクトリから参照できない表現になっており,また他のパスとの一貫性を感じない点にある.

案C

rootDir:     "../example01"
sourcePaths: ["../example01/src/main", ../example01/src/test"]
sourceFiles: ["../example01/src/main/jp/kusu/X.java"]
testFiles:   ["../example01/src/test/jp/kusu/XTest.java"]

一貫性あるがとんでもなくくどい.インテリジェンスを感じない.

@shinsuke-mat shinsuke-mat added this to the α版の完成 milestone May 23, 2018
@shinsuke-mat
Copy link
Member Author

小プロジェクト問題はpending.

rootDirは必要か?
→必要.テスト実行はルートから実行しないと参照ファイルで失敗する可能性がある.

sourceとtestを分ける必要があるか?
→ある.差分ビルドに必須.testからのカンニング防止にも必須.

sourcePaths必要?
→いまは不要?

結論:これで
案B - sourcePaths

rootDir:     "../example01"
sourceFiles: ["../example01/src/main/jp/kusu/X.java"]
testFiles:   ["../example01/src/test/jp/kusu/XTest.java"]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant