Just hit an interesting issue which I'm sure there is a good explanation for, but It caught me off guard.
I was working on this NUnit test called Test_Tbot_User_View
A personal blog about: transforming Web Application Security into an 'Application Visibility' engine, the OWASP O2 Platform, Application/Data interoperability and a lot more
Showing posts with label NUnit. Show all posts
Showing posts with label NUnit. Show all posts
Friday, 18 July 2014
Wednesday, 16 July 2014
From NUnit AppDomain, accessing properties and invoking methods on 'Serializable MarshalByRefObject TeamMentor objects' (hosted on Cassini's AppDomain)
After How fast do the 'NUnit-Cassini-driven' tests execute (on a full TM instance) it was time to start accessing internal TeamMentor objects from the NUnit AppDomain.
The main change I did was to add the [Serializable] and the MarshalByRefObject to the TeamMentor (TM) objects that I want to consume (i.e. access data and invoke methods) from NUnit tests.
Here is an example of what it looks like in one of the main TM's data classes:
The main change I did was to add the [Serializable] and the MarshalByRefObject to the TeamMentor (TM) objects that I want to consume (i.e. access data and invoke methods) from NUnit tests.
Here is an example of what it looks like in one of the main TM's data classes:
Labels:
FluentSharp,
NUnit,
TeamMentor
Tuesday, 15 July 2014
How fast do the 'NUnit-Cassini-driven' tests execute (on a full TM instance)
A question I received after posting The moment I was able to serialize objects across an ASP.NET AppDomain and an NUnit AppDomain was 'Ok, that is is interesting, but how fast is it?'
That is actually one of the 'THE' key questions, since if we want to be able to create NUnit tests that use newly created Cassini-driven websites (i.e. a new Cassini server per test or test class) they have to be fast.
Ok, so how 'fast' is fast?
Well, in my book, that is either less than 1 second (for quick tests) or 10 seconds (for more complex setups).
More than that, and it is not practical to run those tests from NCrunch (or even manually via Resharper/NUnit-GUIs)
The good news is that (as you can see below), I was able to execute an 'NUnit-Cassini-driven' test in:
That is actually one of the 'THE' key questions, since if we want to be able to create NUnit tests that use newly created Cassini-driven websites (i.e. a new Cassini server per test or test class) they have to be fast.
Ok, so how 'fast' is fast?
Well, in my book, that is either less than 1 second (for quick tests) or 10 seconds (for more complex setups).
More than that, and it is not practical to run those tests from NCrunch (or even manually via Resharper/NUnit-GUIs)
The good news is that (as you can see below), I was able to execute an 'NUnit-Cassini-driven' test in:
- 6 sec: via NCrunch (consuming a TM instance with 0 libraries)
- 7 sec: via ReSharper (consuming a TM instance with 3 libraries)
Labels:
Cassini,
FluentSharp,
NCrunch,
NUnit,
TeamMentor
The moment I was able to serialize objects across an ASP.NET AppDomain and an NUnit AppDomain
As you can see at the end of How to debug an Cassini hosted website and the UnitTest that uses WatiN to automate that hosted website, although I was now able to start cassini in the current NUnit process, I was still not able to have direct/native access to the running objects of that website.
Basically what I wanted was to be able to access programatically the live TeamMentor (TM) objects from an NUnit test (note that both are running on separate AppDomains).
Not only this would make some of the tests I want to write possible, it would allow me to much faster setup specific test environments (for example cases when I need a number of users to already exist in TM).
The key problem is that after starting the 'TM website running inside Cassini, triggered from the NUnit test' I was left with two AppDomains:
Basically what I wanted was to be able to access programatically the live TeamMentor (TM) objects from an NUnit test (note that both are running on separate AppDomains).
Not only this would make some of the tests I want to write possible, it would allow me to much faster setup specific test environments (for example cases when I need a number of users to already exist in TM).
The key problem is that after starting the 'TM website running inside Cassini, triggered from the NUnit test' I was left with two AppDomains:
- The NUnit AppDomain running the NUnit Test and the Cassini Server
- The Cassini AppDomain running the TM website
In practice what I wanted to do is to be able to access and edit one of TM objects (for example TeamMentor.Schemas.TM_Config from the NUnit test).
And that is exactly what I was able to do :)
And that is exactly what I was able to do :)
Labels:
FluentSharp,
NCrunch,
NUnit,
TeamMentor
Saturday, 19 January 2013
Using TeamCity and NUnit to Start WebServer, Run Selenium Tests and Stop WebServer
Following the move to split the TeamMentor Brower automation tests into the UnitTests_WebAutomation repository, I just committed a bunch of git pushes (from here up to here) and customized a TeamCity project , so that TeamCity EC2 box will:
Labels:
NUnit,
Selenium,
TeamMentor
Friday, 11 January 2013
Using Selenium to Login using Multiple Browsers
Following from yesterday's posts:
- Coding Firefox in C# in real-time using Selenium's Firefox driver and
- OpenQA.Selenium.DriverServiceNotFoundException on Chrome
Labels:
NUnit,
Selenium,
TeamMentor,
Unit Tests
Thursday, 10 January 2013
OpenQA.Selenium.DriverServiceNotFoundException on Chrome
While trying to running a TeamMentor UnitTest in Chrome I got this error:
Labels:
NUnit,
REPL,
Selenium,
TeamMentor,
Unit Tests
Coding Firefox in C# in real-time using Selenium's Firefox driver
The best way to write and debug Selenium Web Automation scripts is to be able to be able to write code snippets in real time (in a REPL)
This post will show how I just did that for the TeamMentor’s UnitTests environment that Michael Hidalgo is working on.
This post will show how I just did that for the TeamMentor’s UnitTests environment that Michael Hidalgo is working on.
Labels:
NUnit,
REPL,
Selenium,
TeamMentor,
Unit Tests
Just moved from MSTest to NUnit
Because although we did try to use MSTest for TeamMentor UnitTesting, it lacked a couple key features (namely the ability to define generic types in the Class Attribute).
Here is Michael’s commit that shows a simple NUnit test with multiple Browser invocations (note the TestFixture attributes):
Here is Michael’s commit that shows a simple NUnit test with multiple Browser invocations (note the TestFixture attributes):
Labels:
NUnit,
TeamMentor,
Unit Tests
Friday, 30 November 2012
Simple Unit Test to detect XSS using FuzzDB and IE automation
Here is an example of a simple Unit Test written in the Write and Execute Unit Tests v1.0.exe tool which will check for XSS on AltoroMutual website
The idea is that when the Red Boxes go Green, the vulnerability is fixed.
The idea is that when the Red Boxes go Green, the vulnerability is fixed.
Labels:
Fuzzing,
NUnit,
O2 Platform,
Testing
Write and Execute Unit Tests v1.0.exe
Here is a nice util to quickly write NUnit tests. This is designed for fast prototyping of UnitTests, which when stable can be moved into a wider set of tests (executed by NUnit)
You can download this tool from: Write and Execute Unit Tests v1.0.exe
You can download this tool from: Write and Execute Unit Tests v1.0.exe
Subscribe to:
Posts (Atom)