Jelajahi Sumber

Flush

svn path=/trunk/mono/; revision=9384
Miguel de Icaza 23 tahun lalu
induk
melakukan
a8dcefd2cc
8 mengubah file dengan 458 tambahan dan 52 penghapusan
  1. 34 9
      doc/class-status.in
  2. 45 13
      doc/contributing
  3. 6 0
      doc/index
  4. 144 4
      doc/testing
  5. 34 9
      web/class-status.in
  6. 45 13
      web/contributing
  7. 6 0
      web/index
  8. 144 4
      web/testing

+ 34 - 9
doc/class-status.in

@@ -1,17 +1,42 @@
 * Status of the various pieces of the class library
 * Status of the various pieces of the class library
 
 
-	You can browse the status of the class library and see who has
-	registered to work on what parts of the system.  These list
-	work-in-progress components currently.
+	Classes in Mono are organized by the assembly that they belong to. 
 
 
-	Browse the current <a href="class-status/index.html">status</a>.
+	Here is the status of the different assemblies:
+	<ul>
+		<li><a href="http://www.go-mono.com/class-status-corlib.html">corlib</a>: The core library.
+		<li><a href="http://www.go-mono.com/class-status-System.html">System</a>.
+		<li><a href="http://www.go-mono.com/class-status-System.Xml.html">System.Xml</a>.
 
 
-	You can also download the XML <a
-	href="class-status/maintainers.xml">maintainers</a> file that
-	contains the actual maintainers list.  
+		<li><a
+		href="http://www.go-mono.com/class-status-System.Data.html">System.Data</a>:
+		Database access functionality (also check the <a href="ado-net.html">Mono ADO.NET status</a> pages).
 
 
-	You can also download the master <a
-	href="class-status/class.xml">Class Status XML</a> file.
+		<li><a href="http://www.go-mono.com/class-status-System.Drawing.html">System.Drawing</a>.
+
+		<li><a
+		href="http://www.go-mono.com/class-status-System.Web.html">System.Web</a>:
+		ASP.NET classes, also check the <a href="asp-net.html">Mono ASP.NET status pages</a>
+
+		<li><a href="http://www.go-mono.com/class-status-System.Web.Services.html">System.Web.Services</a>.
+
+		<li><a
+		href="http://www.go-mono.com/class-status-Microsoft.VisualBasic.html">Microsoft.VisualBasic</a>:
+		Support runtime for Visual Basic applications
+
+		<li><a
+		href="http://www.go-mono.com/class-status-Windows.Forms.html">Windows.Forms</a>:
+		there is also a <a
+		href="http://lists.ximian.com/mailman/listinfo/mono-winforms-list">mailing
+		list available</a>
+
+		<li><a href="http://www.go-mono.com/class-status-System.EnterpriseServices.html">EnterpriseServices</a>.
+
+		<li><a
+		href="http://www.go-mono.com/class-status-System.Runtime.Serialization.Formatters.Soap.html">System.Runtime.Serialization.Formatters.Soap</a>.
+
+		
+	</ul>
 
 
 * List of not-implemented classes
 * List of not-implemented classes
 
 

+ 45 - 13
doc/contributing

@@ -1,18 +1,50 @@
 * Contributing to the Mono project
 * Contributing to the Mono project
 
 
-	There are many ways in which you can help in the Mono project:
-
-	<ul>
-		* <b>Programmers:</b> You can work on a free
-		  implementation of the <a
-		  href="class-library.html">class libraries</a>, the
-		  <a href="runtime.html">runtime engine</a>, <a
-		  href="tools.html">the tools</a>, the <a
-		  href="testing.html">testing framework</a>
-
-		* <b>Writers:</b> You can help us bywriting <a
-		  href="documentation.html">documentation</a>.
-	</ul>
+	Mono has not been completed yet.  It is a project under
+	active development and with a vibrant community.  If you are
+	looking at ways of helping the project, you have come to the
+	right web page. 
+
+	There are three different philosophical approaches to helping
+	the Mono project, the selfish way, the altruistic or the
+	educational way.
+
+	The <b>selfish</b> way is packed with adventure.  You start by
+	building your own software, and start using the compiler and
+	tools that come with Mono.  Eventually you will run into
+	missing features, or a bug in the software.  Since we ship all
+	the source code for Mono, you can start tracking down the
+	problem.  Depending on how much time you have to devote to the
+	problem you could: <a href="http://bugzilla.ximian.com">File a
+	bug report</a>;  track down the problem and provide a better
+	<a href="http://bugzilla.ximian.com">bug report</a>;  fix the
+	bug and provide a patch (you can <a
+	href="mailto:[email protected]">post it</a> to the <a
+	href="http://lists.ximian.com/mailman/listinfo/mono-list">mono
+	mailing list</a>;  or discuss the solution on the mailing
+	list.   Ideally you will also write a <a
+	href="testing.html">regression test</a> so the bug does not
+	get re-introduced in the future. 
+
+	The <b>altruistic</b> is probably the easiest because you get
+	to pick a piece of Mono that you might want to work on.  You
+	can pick an unfinished <a href="class-library.html">class</a> (from our <a
+	href="class-status.html">class status page</a>); help with the
+	<a href="documentation.html">documentation effort</a> (<a
+	href="http://lists.ximian.com/mailman/listinfo/mono-docs-list">mailing
+	list for the documentation effort</a>); fix existing <a
+	href=http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FClass+Libraries&product=Mono%2FRuntime&component=CORLIB&component=misc&component=System&component=System.Web&component=System.XML&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">runtime
+	bugs</a>; <a
+	href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FMCS&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">compiler
+	bugs</a>; help with the <a href="tools.html">tools</a> or
+	writing <a href="testing.html">tests</a> that help make Mono
+	more robust or help with the <a
+	href="http://www.go-mono.com/winforms.html">Winforms
+	effort</a>.
+
+	The <b>educational</b> way is an interesting one, because you
+	pick a technology you are interested in, and work on that
+	technology to learn the technology.  
 
 
 	Those are just broad things that need to be worked on, but
 	Those are just broad things that need to be worked on, but
 	something that would help tremendously would be to help with
 	something that would help tremendously would be to help with

+ 6 - 0
doc/index

@@ -86,6 +86,12 @@
   </tr>
   </tr>
 </table>
 </table>
 
 
+@item Nov 27th, 2002: Press release, tutorials
+
+http://www.ximian.com/about_us/press_center/press_releases/index.html?pr=openlink_mono
+
+	SWF progress.
+
 @item Nov 19th, 2002: Crypto update; Books; Gtk# Datagrid; .NET ONE Slides
 @item Nov 19th, 2002: Crypto update; Books; Gtk# Datagrid; .NET ONE Slides
 
 
 	Sebastien has got DSA and RSA signatures <a
 	Sebastien has got DSA and RSA signatures <a

+ 144 - 4
doc/testing

@@ -9,13 +9,153 @@
 ** Class Library Tests
 ** Class Library Tests
 
 
 	All classes in Mono libraries should have comprehensive unit test
 	All classes in Mono libraries should have comprehensive unit test
-	suites to go with them. Unit testing is a software engineering
-  	methodology that makes it easier to build correct code. Every
+	suites to go with them.  Unit testing is a software engineering
+  	methodology that makes it easier to build correct code.  Every
   	method in every class should have a set of tests to verify
   	method in every class should have a set of tests to verify
-  	that they work correctly. Mono also needs a testing framework
+  	that they work correctly.  Mono also needs a testing framework
 	to make it easy to write and run lots of tests. 
 	to make it easy to write and run lots of tests. 
 
 
-	Try <a href="http://nunit.sourceforge.net">NUnit</a>
+
+** Getting started
+
+	If you are new to writing NUnit tests, there is a template you may use
+	to help get started. The file is:
+
+		<b>mcs/class/doc/TemplateTest.cs</b>
+
+	Save a copy of this file in the appropriate test subdirecty
+	(see below), and replace all the [text] markers with
+	appropriate code. Comments in the template are there to guide
+	you. You should also look at existing tests to see how other
+	people have written them.
+	mcs/class/corlib/Test/System.Collections/CollectionBaseTest.cs
+	is a small one that might help.
+
+	The directory that will contain your new file depends on the
+	assembly/namespace of the class for which you are creating the
+	tests.  Under mcs/class there is a directory for each
+	assembly. In each assembly there is a Test directory,
+	e.g. mcs/class/corlib/Test. In the Test directory there are
+	sub-directories for each namespace in the assembly,
+	e.g. mcs/class/corlib/Test/Sytem. Put your new test file in
+	the appropriate sub-directory under Test for the class you are
+	testing.
+	
+	Once your test class is complete, you need to add it to the
+	AllTests.cs file in the same directory as your new test. Add a
+	call to "suite.AddTest()" passing the name of your new test
+	class's suite property as the parameter.  You will see
+	examples in the AllTests.cs file, so just copy and paste
+	inside there.
+	
+	Once all of that is done, you can do a 'make test' from the top mcs
+	directory.  Your test class will be automagically included in the
+	build and the tests will be run along with all the others.
+
+* Tips on writing Unit tests.
+
+	You should look at the NUnit documentation, as it is a
+	fantastic product, and includes fantastic documentation, but
+	here are some tips for those of you who are already reading
+	this web page.
+
+
+** Provide an unique error message for Assert()
+
+	Include an unique message for each Assert() so that when the assert
+	fails, it is trivial to locate the failing one. Otherwise, it may be
+	difficult to determine which part of the test is failing. A good way
+	to ensure unique messages is to use something like #A01, #A02 etc.
+
+	    Ok:
+	<pre>
+	
+		AssertEquals("array match", compare[0], i1[0]);
+		AssertEquals("array match", compare[1], i1[1]);
+		AssertEquals("array match", compare[2], i1[2]);
+		AssertEquals("array match", compare[3], i1[3]);
+	</pre>
+
+	    Excellent:
+	<pre>
+		AssertEquals("#A01", compare[0], i1[0]);
+		AssertEquals("#A02", compare[1], i1[1]);
+		AssertEquals("#A03", compare[2], i1[2]);
+		AssertEquals("#A04", compare[3], i1[3]);
+	</pre>
+	
+	Once you used such a number in an Assert(), don't change it later on -
+	people might use it it identify the test in bug reports or in mailing
+	lists.
+
+** Use AssertEquals() to compare things, not Assert().
+
+	Do not compare two values with Assert() - if the test fails,
+	people have no idea what went wrong while AssertEquals()
+	reports the failed value.
+
+	Ok:
+	<pre>
+	        Assert ("A01", myTicks[0] == t1.Ticks);
+	</pre>
+
+	Excellent:
+	<pre>
+	        AssertEquals ("A01", myTicks[0], t1.Ticks);
+	</pre>
+
+** Constructors
+
+	When writing your testcase, please make sure to provide a constructor
+	which takes no arguments:
+
+	<pre>
+        public class DateTimeTest : TestCase
+        {
+
+                public DateTimeTest() : base ("[MonoTests.System.DateTimeTest]") {}
+                public DateTimeTest (string name): base(name) {}
+
+        	public static ITest Suite
+                {
+                        get {
+                                TestSuite suite = new TestSuite ();
+        			return suite;
+        		}
+        	}
+        }
+	</pre>
+
+** Namespace
+
+	Please keep the namespace within each test directory consistent - all
+	tests which are referenced in the same AllTests.cs must be in the same
+	namespace. Of course you can use subnamespaces as you like -
+	especially for subdirectories of your testsuite.
+	
+	For instance, if your AllTests.cs is in namespace "MonoTests" and you
+	have a subdirectory called "System", you can put all the tests in that
+	dir into namespace "MonoTests.System".
+	
+** Test your test with the Microsoft runtime
+	
+	If possible, try to run your testsuite with the Microsoft runtime on
+	Windows and make sure all tests in it pass. This is especially
+	important if you're writing a totally new testcase - without this
+	check you can never be sure that your testcase contains no bugs ....
+	
+	Don't worry if you're writing your test on Linux, other people can
+	test it for you on Windows.
+	
+	Sometimes you may discover that a test doesn't show the expected
+	result when run with the Microsoft runtime - either because there is a
+	bug in their runtime or something is misleading or wrong in their
+	documentation. In this case, please put a detailed description of the
+	problem to mcs/class/doc/API-notes and do also report it to the list -
+	we'll forward this to the Microsoft people from time to time to help
+	them fix their documentation and runtime.
+
+** Unit tets.
 
 
 	Why do unit testing? It becomes simple to run automated tests
 	Why do unit testing? It becomes simple to run automated tests
 	for the whole library. Unit tests are a safety net - you can
 	for the whole library. Unit tests are a safety net - you can

+ 34 - 9
web/class-status.in

@@ -1,17 +1,42 @@
 * Status of the various pieces of the class library
 * Status of the various pieces of the class library
 
 
-	You can browse the status of the class library and see who has
-	registered to work on what parts of the system.  These list
-	work-in-progress components currently.
+	Classes in Mono are organized by the assembly that they belong to. 
 
 
-	Browse the current <a href="class-status/index.html">status</a>.
+	Here is the status of the different assemblies:
+	<ul>
+		<li><a href="http://www.go-mono.com/class-status-corlib.html">corlib</a>: The core library.
+		<li><a href="http://www.go-mono.com/class-status-System.html">System</a>.
+		<li><a href="http://www.go-mono.com/class-status-System.Xml.html">System.Xml</a>.
 
 
-	You can also download the XML <a
-	href="class-status/maintainers.xml">maintainers</a> file that
-	contains the actual maintainers list.  
+		<li><a
+		href="http://www.go-mono.com/class-status-System.Data.html">System.Data</a>:
+		Database access functionality (also check the <a href="ado-net.html">Mono ADO.NET status</a> pages).
 
 
-	You can also download the master <a
-	href="class-status/class.xml">Class Status XML</a> file.
+		<li><a href="http://www.go-mono.com/class-status-System.Drawing.html">System.Drawing</a>.
+
+		<li><a
+		href="http://www.go-mono.com/class-status-System.Web.html">System.Web</a>:
+		ASP.NET classes, also check the <a href="asp-net.html">Mono ASP.NET status pages</a>
+
+		<li><a href="http://www.go-mono.com/class-status-System.Web.Services.html">System.Web.Services</a>.
+
+		<li><a
+		href="http://www.go-mono.com/class-status-Microsoft.VisualBasic.html">Microsoft.VisualBasic</a>:
+		Support runtime for Visual Basic applications
+
+		<li><a
+		href="http://www.go-mono.com/class-status-Windows.Forms.html">Windows.Forms</a>:
+		there is also a <a
+		href="http://lists.ximian.com/mailman/listinfo/mono-winforms-list">mailing
+		list available</a>
+
+		<li><a href="http://www.go-mono.com/class-status-System.EnterpriseServices.html">EnterpriseServices</a>.
+
+		<li><a
+		href="http://www.go-mono.com/class-status-System.Runtime.Serialization.Formatters.Soap.html">System.Runtime.Serialization.Formatters.Soap</a>.
+
+		
+	</ul>
 
 
 * List of not-implemented classes
 * List of not-implemented classes
 
 

+ 45 - 13
web/contributing

@@ -1,18 +1,50 @@
 * Contributing to the Mono project
 * Contributing to the Mono project
 
 
-	There are many ways in which you can help in the Mono project:
-
-	<ul>
-		* <b>Programmers:</b> You can work on a free
-		  implementation of the <a
-		  href="class-library.html">class libraries</a>, the
-		  <a href="runtime.html">runtime engine</a>, <a
-		  href="tools.html">the tools</a>, the <a
-		  href="testing.html">testing framework</a>
-
-		* <b>Writers:</b> You can help us bywriting <a
-		  href="documentation.html">documentation</a>.
-	</ul>
+	Mono has not been completed yet.  It is a project under
+	active development and with a vibrant community.  If you are
+	looking at ways of helping the project, you have come to the
+	right web page. 
+
+	There are three different philosophical approaches to helping
+	the Mono project, the selfish way, the altruistic or the
+	educational way.
+
+	The <b>selfish</b> way is packed with adventure.  You start by
+	building your own software, and start using the compiler and
+	tools that come with Mono.  Eventually you will run into
+	missing features, or a bug in the software.  Since we ship all
+	the source code for Mono, you can start tracking down the
+	problem.  Depending on how much time you have to devote to the
+	problem you could: <a href="http://bugzilla.ximian.com">File a
+	bug report</a>;  track down the problem and provide a better
+	<a href="http://bugzilla.ximian.com">bug report</a>;  fix the
+	bug and provide a patch (you can <a
+	href="mailto:[email protected]">post it</a> to the <a
+	href="http://lists.ximian.com/mailman/listinfo/mono-list">mono
+	mailing list</a>;  or discuss the solution on the mailing
+	list.   Ideally you will also write a <a
+	href="testing.html">regression test</a> so the bug does not
+	get re-introduced in the future. 
+
+	The <b>altruistic</b> is probably the easiest because you get
+	to pick a piece of Mono that you might want to work on.  You
+	can pick an unfinished <a href="class-library.html">class</a> (from our <a
+	href="class-status.html">class status page</a>); help with the
+	<a href="documentation.html">documentation effort</a> (<a
+	href="http://lists.ximian.com/mailman/listinfo/mono-docs-list">mailing
+	list for the documentation effort</a>); fix existing <a
+	href=http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FClass+Libraries&product=Mono%2FRuntime&component=CORLIB&component=misc&component=System&component=System.Web&component=System.XML&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">runtime
+	bugs</a>; <a
+	href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FMCS&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">compiler
+	bugs</a>; help with the <a href="tools.html">tools</a> or
+	writing <a href="testing.html">tests</a> that help make Mono
+	more robust or help with the <a
+	href="http://www.go-mono.com/winforms.html">Winforms
+	effort</a>.
+
+	The <b>educational</b> way is an interesting one, because you
+	pick a technology you are interested in, and work on that
+	technology to learn the technology.  
 
 
 	Those are just broad things that need to be worked on, but
 	Those are just broad things that need to be worked on, but
 	something that would help tremendously would be to help with
 	something that would help tremendously would be to help with

+ 6 - 0
web/index

@@ -86,6 +86,12 @@
   </tr>
   </tr>
 </table>
 </table>
 
 
+@item Nov 27th, 2002: Press release, tutorials
+
+http://www.ximian.com/about_us/press_center/press_releases/index.html?pr=openlink_mono
+
+	SWF progress.
+
 @item Nov 19th, 2002: Crypto update; Books; Gtk# Datagrid; .NET ONE Slides
 @item Nov 19th, 2002: Crypto update; Books; Gtk# Datagrid; .NET ONE Slides
 
 
 	Sebastien has got DSA and RSA signatures <a
 	Sebastien has got DSA and RSA signatures <a

+ 144 - 4
web/testing

@@ -9,13 +9,153 @@
 ** Class Library Tests
 ** Class Library Tests
 
 
 	All classes in Mono libraries should have comprehensive unit test
 	All classes in Mono libraries should have comprehensive unit test
-	suites to go with them. Unit testing is a software engineering
-  	methodology that makes it easier to build correct code. Every
+	suites to go with them.  Unit testing is a software engineering
+  	methodology that makes it easier to build correct code.  Every
   	method in every class should have a set of tests to verify
   	method in every class should have a set of tests to verify
-  	that they work correctly. Mono also needs a testing framework
+  	that they work correctly.  Mono also needs a testing framework
 	to make it easy to write and run lots of tests. 
 	to make it easy to write and run lots of tests. 
 
 
-	Try <a href="http://nunit.sourceforge.net">NUnit</a>
+
+** Getting started
+
+	If you are new to writing NUnit tests, there is a template you may use
+	to help get started. The file is:
+
+		<b>mcs/class/doc/TemplateTest.cs</b>
+
+	Save a copy of this file in the appropriate test subdirecty
+	(see below), and replace all the [text] markers with
+	appropriate code. Comments in the template are there to guide
+	you. You should also look at existing tests to see how other
+	people have written them.
+	mcs/class/corlib/Test/System.Collections/CollectionBaseTest.cs
+	is a small one that might help.
+
+	The directory that will contain your new file depends on the
+	assembly/namespace of the class for which you are creating the
+	tests.  Under mcs/class there is a directory for each
+	assembly. In each assembly there is a Test directory,
+	e.g. mcs/class/corlib/Test. In the Test directory there are
+	sub-directories for each namespace in the assembly,
+	e.g. mcs/class/corlib/Test/Sytem. Put your new test file in
+	the appropriate sub-directory under Test for the class you are
+	testing.
+	
+	Once your test class is complete, you need to add it to the
+	AllTests.cs file in the same directory as your new test. Add a
+	call to "suite.AddTest()" passing the name of your new test
+	class's suite property as the parameter.  You will see
+	examples in the AllTests.cs file, so just copy and paste
+	inside there.
+	
+	Once all of that is done, you can do a 'make test' from the top mcs
+	directory.  Your test class will be automagically included in the
+	build and the tests will be run along with all the others.
+
+* Tips on writing Unit tests.
+
+	You should look at the NUnit documentation, as it is a
+	fantastic product, and includes fantastic documentation, but
+	here are some tips for those of you who are already reading
+	this web page.
+
+
+** Provide an unique error message for Assert()
+
+	Include an unique message for each Assert() so that when the assert
+	fails, it is trivial to locate the failing one. Otherwise, it may be
+	difficult to determine which part of the test is failing. A good way
+	to ensure unique messages is to use something like #A01, #A02 etc.
+
+	    Ok:
+	<pre>
+	
+		AssertEquals("array match", compare[0], i1[0]);
+		AssertEquals("array match", compare[1], i1[1]);
+		AssertEquals("array match", compare[2], i1[2]);
+		AssertEquals("array match", compare[3], i1[3]);
+	</pre>
+
+	    Excellent:
+	<pre>
+		AssertEquals("#A01", compare[0], i1[0]);
+		AssertEquals("#A02", compare[1], i1[1]);
+		AssertEquals("#A03", compare[2], i1[2]);
+		AssertEquals("#A04", compare[3], i1[3]);
+	</pre>
+	
+	Once you used such a number in an Assert(), don't change it later on -
+	people might use it it identify the test in bug reports or in mailing
+	lists.
+
+** Use AssertEquals() to compare things, not Assert().
+
+	Do not compare two values with Assert() - if the test fails,
+	people have no idea what went wrong while AssertEquals()
+	reports the failed value.
+
+	Ok:
+	<pre>
+	        Assert ("A01", myTicks[0] == t1.Ticks);
+	</pre>
+
+	Excellent:
+	<pre>
+	        AssertEquals ("A01", myTicks[0], t1.Ticks);
+	</pre>
+
+** Constructors
+
+	When writing your testcase, please make sure to provide a constructor
+	which takes no arguments:
+
+	<pre>
+        public class DateTimeTest : TestCase
+        {
+
+                public DateTimeTest() : base ("[MonoTests.System.DateTimeTest]") {}
+                public DateTimeTest (string name): base(name) {}
+
+        	public static ITest Suite
+                {
+                        get {
+                                TestSuite suite = new TestSuite ();
+        			return suite;
+        		}
+        	}
+        }
+	</pre>
+
+** Namespace
+
+	Please keep the namespace within each test directory consistent - all
+	tests which are referenced in the same AllTests.cs must be in the same
+	namespace. Of course you can use subnamespaces as you like -
+	especially for subdirectories of your testsuite.
+	
+	For instance, if your AllTests.cs is in namespace "MonoTests" and you
+	have a subdirectory called "System", you can put all the tests in that
+	dir into namespace "MonoTests.System".
+	
+** Test your test with the Microsoft runtime
+	
+	If possible, try to run your testsuite with the Microsoft runtime on
+	Windows and make sure all tests in it pass. This is especially
+	important if you're writing a totally new testcase - without this
+	check you can never be sure that your testcase contains no bugs ....
+	
+	Don't worry if you're writing your test on Linux, other people can
+	test it for you on Windows.
+	
+	Sometimes you may discover that a test doesn't show the expected
+	result when run with the Microsoft runtime - either because there is a
+	bug in their runtime or something is misleading or wrong in their
+	documentation. In this case, please put a detailed description of the
+	problem to mcs/class/doc/API-notes and do also report it to the list -
+	we'll forward this to the Microsoft people from time to time to help
+	them fix their documentation and runtime.
+
+** Unit tets.
 
 
 	Why do unit testing? It becomes simple to run automated tests
 	Why do unit testing? It becomes simple to run automated tests
 	for the whole library. Unit tests are a safety net - you can
 	for the whole library. Unit tests are a safety net - you can