<div dir="ltr">People go back and forth on tests/A and A/tests, but I think the current thought is that A/tests is better than tests/A (altho with the package manager, the original rationale for that (keeping the code and the tests more together) seems to be gone.<div>
<br></div><div>But yeah, I&#39;d definitely agree that a top-level tests submodule is a clear indication of tests.</div><div><br></div><div>Robby<br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Aug 22, 2013 at 1:27 AM, Laurent <span dir="ltr">&lt;<a href="mailto:laurent.orseau@gmail.com" target="_blank">laurent.orseau@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div>Quickly:  It is common to  use a  submodule for tests, in the same source file:<br>
</div>(module+ test<br></div>  (require rackunit)<br>  ....)<br><br></div>then running `raco test &lt;file.rkt&gt; ...` will run all the tests. Such tests are also automatically run in DrRacket when you press run (along with the &#39;main&#39; submodule).<br>


<br></div>For packages that have a collection A, it is also common (and considered good practice) to have another collection &#39;test&#39; with a subdirectory for A and its tests.<br></div><div>See for example the xml-rpc repo: <a href="https://github.com/jeapostrophe/xml-rpc" target="_blank">https://github.com/jeapostrophe/xml-rpc</a><br>


</div><div></div>This is partly intended for use with DrDr (that runs `raco test`), a tool written by Jay for the development of Racket. I don&#39;t know much more about it, but other people on this list do.<span class="HOEnZb"><font color="#888888"><br>
<br><div>
<div>
Laurent<br></div></div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Aug 22, 2013 at 7:54 AM, Chad Albers <span dir="ltr">&lt;<a href="mailto:calbers@neomantic.com" target="_blank">calbers@neomantic.com</a>&gt;</span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">As a Ruby engineer, we have a wonderful tool called &quot;guard&quot; that<br>
automatically runs our unit-tests every time a test-case changes or<br>
every-time a source file changes.<br>
<br>
I have written a guard plugin that performs the same task for Racket&#39;s<br>
rackunit.  Currently, it pretty primitive - guard runs all tests if<br>
anything changes - and it makes several assumptions about how tests<br>
are structured.<br>
<br>
guard&#39;s ruby unit test plug works so well because there is a set of<br>
informal conventions that Ruby developers follow, and guard&#39;s ruby<br>
plugin works so well because it can counts on those conventions.<br>
<br>
Before I release &quot;guard-rackunit&quot; to the general public, I am<br>
wondering if similar conventions exist for rackunit.<br>
<br>
For instance, in my Racket project, the following conditions hold true<br>
1. all tests are located at the root of the project in a directory call &quot;tests&quot;<br>
2. in the &quot;tests&quot; directory, I have a &quot;test-runner.rkt&quot; file that<br>
performs all &#39;(run-tests *).<br>
3. Each test-suite file contains one &#39;provide&#39; which corresponds to<br>
the name of the test-suite<br>
4. Each test-suite file is name after the file that it tests and<br>
appends &quot;-test.rkt&quot;; eg. foo.rkt corresponds to foo-test.rkt<br>
<br>
If the Racket community follows a different set of conventions, I can<br>
change my guard plugin to follow those conventions, and only have<br>
guard run a test suite for the file it tests.<br>
<br>
Let me know 1) if there is any interest in this project, and 2) a set<br>
of conventions that I can generally depend upon.<br>
<br>
Thanks,<br>
Chad<br>
____________________<br>
  Racket Users list:<br>
  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
</blockquote></div><br></div>
</div></div><br>____________________<br>
  Racket Users list:<br>
  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
<br></blockquote></div><br></div></div></div>