mvn_watch 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +0 -0
- data/Rakefile +11 -0
- data/VERSION +1 -0
- data/bin/mvn_watch +4 -0
- data/lib/maven_watchr.rb +53 -0
- data/spec/spec.maven_watchr.rb +37 -0
- data/spec/testArtifactId/pom.xml +18 -0
- data/spec/testArtifactId/src/main/java/testGroupId/App.java +13 -0
- data/spec/testArtifactId/src/test/java/testGroupId/AppTest.java +38 -0
- data/spec/testArtifactId/target/classes/testGroupId/App.class +0 -0
- metadata +96 -0
data/README
ADDED
File without changes
|
data/Rakefile
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'jeweler'
|
2
|
+
Jeweler::Tasks.new do |gem|
|
3
|
+
gem.name = "mvn_watch"
|
4
|
+
gem.summary = %Q{A "continuous integration local tester" for maven projects (typically java), such that when you update a .java file, it will automatically run its unit test.}
|
5
|
+
gem.description = gem.summary
|
6
|
+
gem.email = "rogerdpack@gmail.com"
|
7
|
+
gem.homepage = "http://github.com/rdp/maven_watchr"
|
8
|
+
gem.authors = ["rdp"]
|
9
|
+
gem.add_dependency "sane"
|
10
|
+
gem.add_development_dependency "rspec", ">= 1.2.9"
|
11
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.1
|
data/bin/mvn_watch
ADDED
data/lib/maven_watchr.rb
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'watchr'
|
2
|
+
require 'os'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'snarl' if OS.windows?
|
6
|
+
rescue LoadError
|
7
|
+
puts 'snarl gem not available for popups'
|
8
|
+
end
|
9
|
+
|
10
|
+
class MavenWatchr
|
11
|
+
attr_accessor :stop_after_next
|
12
|
+
|
13
|
+
|
14
|
+
##
|
15
|
+
# Note that this command will receive a single classname, like App from App.java, appended to it, when it's used
|
16
|
+
##
|
17
|
+
def initialize command_to_run
|
18
|
+
@command_to_run = command_to_run
|
19
|
+
end
|
20
|
+
|
21
|
+
def go_local_dir
|
22
|
+
script = Watchr::Script.new
|
23
|
+
script.watch('.*/(.*)\.java') do |changed_file|
|
24
|
+
success = true
|
25
|
+
if changed_file[1] =~ /Test$/
|
26
|
+
if @command_to_run
|
27
|
+
command = @command_to_run + changed_file[1]
|
28
|
+
puts command
|
29
|
+
success = system(command)
|
30
|
+
end
|
31
|
+
|
32
|
+
else
|
33
|
+
if @command_to_run && Dir['**/' + changed_file[1] + 'Test*'].length > 0 # ltodo test this > 0
|
34
|
+
command = @command_to_run + changed_file[1] + 'Test'
|
35
|
+
puts command
|
36
|
+
success = system(command)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
if OS.windows? && !success
|
40
|
+
Snarl.new 'failed:' + command if defined?(Snarl)
|
41
|
+
end
|
42
|
+
puts 'done'
|
43
|
+
raise 'done' if stop_after_next
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
contrl = Watchr::Controller.new(script, Watchr.handler.new)
|
48
|
+
contrl.run
|
49
|
+
|
50
|
+
Watchr::Controller.new(script, Watchr.handler.new).run
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'pathname'
|
3
|
+
require 'spec/autorun'
|
4
|
+
require 'sane'
|
5
|
+
|
6
|
+
require_relative './maven_watchr'
|
7
|
+
|
8
|
+
describe MavenWatchr do
|
9
|
+
|
10
|
+
before do
|
11
|
+
Dir.chdir 'testArtifactId' if File.exist? 'testArtifactId'
|
12
|
+
@subject = MavenWatchr.new
|
13
|
+
@subject.stop_after_next = true
|
14
|
+
Thread.new { @subject.go_local_dir }
|
15
|
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should find java test file without .class and compile it "
|
19
|
+
|
20
|
+
it "should run unit test on one" do
|
21
|
+
compiled = Pathname('target/test-classes/testGroupId/AppTest.class')
|
22
|
+
compiled.delete if compiled.exist?
|
23
|
+
FileUtils.touch 'src/test/java/testGroupId/AppTest.java'
|
24
|
+
sleep 3.1 # should recompile its class
|
25
|
+
assert compiled.exist?
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should run test on all"
|
30
|
+
it "should run test compile"
|
31
|
+
|
32
|
+
it "should run test compile on one" do
|
33
|
+
pending "figuring out if this is possible"
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should use snarl optionally"
|
37
|
+
|
38
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
2
|
+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
3
|
+
<modelVersion>4.0.0</modelVersion>
|
4
|
+
<groupId>testGroupId</groupId>
|
5
|
+
<artifactId>testArtifactId</artifactId>
|
6
|
+
<packaging>jar</packaging>
|
7
|
+
<version>1.0-SNAPSHOT</version>
|
8
|
+
<name>testArtifactId</name>
|
9
|
+
<url>http://maven.apache.org</url>
|
10
|
+
<dependencies>
|
11
|
+
<dependency>
|
12
|
+
<groupId>junit</groupId>
|
13
|
+
<artifactId>junit</artifactId>
|
14
|
+
<version>3.8.1</version>
|
15
|
+
<scope>test</scope>
|
16
|
+
</dependency>
|
17
|
+
</dependencies>
|
18
|
+
</project>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
package testGroupId;
|
2
|
+
|
3
|
+
import junit.framework.Test;
|
4
|
+
import junit.framework.TestCase;
|
5
|
+
import junit.framework.TestSuite;
|
6
|
+
|
7
|
+
/**
|
8
|
+
* Unit test for simple App.
|
9
|
+
*/
|
10
|
+
public class AppTest
|
11
|
+
extends TestCase
|
12
|
+
{
|
13
|
+
/**
|
14
|
+
* Create the test case
|
15
|
+
*
|
16
|
+
* @param testName name of the test case
|
17
|
+
*/
|
18
|
+
public AppTest( String testName )
|
19
|
+
{
|
20
|
+
super( testName );
|
21
|
+
}
|
22
|
+
|
23
|
+
/**
|
24
|
+
* @return the suite of tests being tested
|
25
|
+
*/
|
26
|
+
public static Test suite()
|
27
|
+
{
|
28
|
+
return new TestSuite( AppTest.class );
|
29
|
+
}
|
30
|
+
|
31
|
+
/**
|
32
|
+
* Rigourous Test :-)
|
33
|
+
*/
|
34
|
+
public void testApp()
|
35
|
+
{
|
36
|
+
assertTrue( true );
|
37
|
+
}
|
38
|
+
}
|
Binary file
|
metadata
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mvn_watch
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
- 1
|
9
|
+
version: 0.1.1
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- rdp
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2010-03-05 00:00:00 -07:00
|
18
|
+
default_executable: mvn_watch
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: sane
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
version: "0"
|
30
|
+
type: :runtime
|
31
|
+
version_requirements: *id001
|
32
|
+
- !ruby/object:Gem::Dependency
|
33
|
+
name: rspec
|
34
|
+
prerelease: false
|
35
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
segments:
|
40
|
+
- 1
|
41
|
+
- 2
|
42
|
+
- 9
|
43
|
+
version: 1.2.9
|
44
|
+
type: :development
|
45
|
+
version_requirements: *id002
|
46
|
+
description: A "continuous integration local tester" for maven projects (typically java), such that when you update a .java file, it will automatically run its unit test.
|
47
|
+
email: rogerdpack@gmail.com
|
48
|
+
executables:
|
49
|
+
- mvn_watch
|
50
|
+
extensions: []
|
51
|
+
|
52
|
+
extra_rdoc_files:
|
53
|
+
- README
|
54
|
+
files:
|
55
|
+
- README
|
56
|
+
- Rakefile
|
57
|
+
- VERSION
|
58
|
+
- bin/mvn_watch
|
59
|
+
- lib/maven_watchr.rb
|
60
|
+
- spec/spec.maven_watchr.rb
|
61
|
+
- spec/testArtifactId/pom.xml
|
62
|
+
- spec/testArtifactId/src/main/java/testGroupId/App.java
|
63
|
+
- spec/testArtifactId/src/test/java/testGroupId/AppTest.java
|
64
|
+
- spec/testArtifactId/target/classes/testGroupId/App.class
|
65
|
+
has_rdoc: true
|
66
|
+
homepage: http://github.com/rdp/maven_watchr
|
67
|
+
licenses: []
|
68
|
+
|
69
|
+
post_install_message:
|
70
|
+
rdoc_options:
|
71
|
+
- --charset=UTF-8
|
72
|
+
require_paths:
|
73
|
+
- lib
|
74
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
segments:
|
79
|
+
- 0
|
80
|
+
version: "0"
|
81
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
segments:
|
86
|
+
- 0
|
87
|
+
version: "0"
|
88
|
+
requirements: []
|
89
|
+
|
90
|
+
rubyforge_project:
|
91
|
+
rubygems_version: 1.3.6
|
92
|
+
signing_key:
|
93
|
+
specification_version: 3
|
94
|
+
summary: A "continuous integration local tester" for maven projects (typically java), such that when you update a .java file, it will automatically run its unit test.
|
95
|
+
test_files:
|
96
|
+
- spec/spec.maven_watchr.rb
|