Bugs item #995409, was opened at 2004-07-21 12:39
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=402868&aid=995409&group_id=31650

Category: Tasks
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Tom Cabanski (tcabanski)
Assigned to: Nobody/Anonymous (nobody)
Summary: Improvement to NUNit2

Initial Comment:
I’ve run into a situation where I have to run my unit test 
suite under a number of cultures to verify proper 
handling of number and date formatting.  Rather that 
manually switching my machine for each test, I’ve 
introduced a culture attribute to the test element of the 
nunit2 task.  For example, the following directive runs 
my test suite in five cultures:

<target name="unitTestLanguages" depends="prep, 
build" description="Runs unit tests under additional 
languages.">
            <nunit2 failonerror="false">
                  <test assemblyname="${test.dir}
\jdp.tests.dll" appconfig="${test.dir}\jdp.tests.dll.config" 
culture="it-IT"/>
                  <test assemblyname="${test.dir}
\jdp.tests.dll" appconfig="${test.dir}\jdp.tests.dll.config" 
culture="fr-FR"/>
                  <test assemblyname="${test.dir}
\jdp.tests.dll" appconfig="${test.dir}\jdp.tests.dll.config" 
culture="de-DE"/>
                  <test assemblyname="${test.dir}
\jdp.tests.dll" appconfig="${test.dir}\jdp.tests.dll.config" 
culture="en-GB"/>
                  <test assemblyname="${test.dir}
\jdp.tests.dll" appconfig="${test.dir}\jdp.tests.dll.config" 
culture="zh-CN"/>
            </nunit2>
      </target>

We've had this for several months now and found it 
quite useful.  As a result, I got the latest code from CVS 
and added the new attribute to it.

Here’s the diff from CVS:

Index: NUnit2Task.cs
==========================================
=========================
RCS 
file: /cvsroot/nant/nant/src/NAnt.NUnit/NUnit2/NUnit2Ta
sk.cs,v
retrieving revision 1.37
diff -r1.37 NUnit2Task.cs
107a108,118
>     ///    <para>
>     ///   Run tests in the <c>MyProject.Tests.dll</c> 
assembly using the Italian culture (even if the computer 
is using a different culture).
>     ///   </para>
>     ///   <code>
>     ///     <![CDATA[
>     /// <nunit2>
>     ///     <formatter type="Plain" />
>     ///     <test assemblyname="MyProject.Tests.dll" 
>appconfig="MyProject.Tests.dll.config" culture="it-IT"/>
>     /// </nunit2>
>     ///     ]]>
>     ///   </code>
278a290,298
>                 
>                 //Save the current culture and set the 
thread's 
> culture based on the default of the Culture attribute
>                 System.Globalization.CultureInfo 
holdCulture = 
> 
System.Threading.Thread.CurrentThread.CurrentCulture;
>                 
System.Threading.Thread.CurrentThread.CurrentCulture 
= 
> test.CultureInfo;
> 
>                 if (holdCulture.Name != 
test.CultureInfo.Name)
>                 {
>                       Console.WriteLine("RUNNING TESTS 
UNDER CULTURE 
> {0}", test.CultureInfo.Name);
>                 }
287a308,310
>                 //Put back the old culture
>                 
System.Threading.Thread.CurrentThread.CurrentCulture 
= 
> holdCulture;
> 
Index: NUnit2Test.cs
==========================================
=========================
RCS 
file: /cvsroot/nant/nant/src/NAnt.NUnit/NUnit2/NUnit2Te
st.cs,v
retrieving revision 1.23
diff -r1.23 NUnit2Test.cs
44a45
>           private System.Globalization.CultureInfo 
_culture = 
> System.Globalization.CultureInfo.CurrentCulture;
106a108,127
>           /// <summary>
>           /// Set to a culture name such as "fr-FR" 
(France French)
>           /// to run the tests under a culture other than
>           /// the machine default culture.
>           /// </summary>
>           [TaskAttribute("culture")]
>           public string Culture
>           {
>                 get { return _culture.Name; }
>                 set { _culture = new
> System.Globalization.CultureInfo(value); }
>           }
> 
>         /// <summary>
>         /// The CultureInfo object which will be used to 
set the culture of the test.
>         /// </summary>
>         public System.Globalization.CultureInfo 
CultureInfo
>         {
>             get { return _culture; }
>         }
> 

***** CVS exited normally with code 1 *****

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=402868&aid=995409&group_id=31650


-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
_______________________________________________
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers

Reply via email to