Accessible Continuous Integration - unit-testing

I am looking for a continuous integration suite that is accessible to blind users. I cannot seem to find one. TeamCity looks really nice but has no accessibility support. Is there a blind-accessible continuous integration solution?

Going from my own experience here, CruiseControl seems pretty good. I've only used the .NET version, which comes with a task tray icon for Windows, so I'm not sure whether the other versions have that. But the web interface, which I assume is universal, is accessible. I've been using it with NVDA (Non-Visual Desktop Access) v2012.3.1. That's the only one I've tried so far, I'm afraid. But I hope this helps.

Related

automating windows phone emulator

It's easy to create unit tests for Windows Phone apps (8.0/8.1) that run on the emulator.
Now, it would be great to be able to 'remote control' the emulator from inside such a test (e.g. changing the orientation or the location on the fly).
Does anyone know a way how to do this (or has at least an idea about the way to go)?
EDIT:
I'm using the standard Phone Unit Test project template (which uses MSTest) in C#.
Your question is very poor, you have to provide more information at least about what language, Test framework, tool are you using for your tests?
My article about Custom Mobile test framework maybe useful to you. Feel free to reuse what you find helpful or to ask questions.

TDD with Sitecore 7 and TFS 2012 CI

So, testing with Sitecore. It's a special topic and I've found allot of reading material regarding it already. (Sitecore Development Chapter 8, Alistair Deneys blog, NextDigital blog, iStern blog,...) but in most of these cases they're going with NUnit and custom test runners etc... The most useful (to me in my context) this far was the iStern blog for mocking out Sitecore using Microsoft Fakes. But is this really the way to go?
I'm surprised that with Hedgehog TDS system to integrate so deeply with TFS and be able to do CI in Sitecore development that there isn't more on how to utilize this system for setting up solid testing executed by TFS (yet).
We're gearing up for a large new project now that uses Sitecore to handle front-end user interaction where the data being used is 95% behind a WCF service. So this part can be easily tested and TDD developed. It's the last 5% (which sadly includes like the highest business value, being online payments) that resides within Sitecore that needs to be tested. Can we ever have enough intimate knowledge of sitecore to mock it out? I'd be inclined to think not... if so, how then do we run conclusive tests on our TFS CI build against sitecore?
Last but not least I get the feeling that the information currently to be found is getting a bit out of date perhaps (maily seeing the remarks on the NextDigital blog), does Sitecore 7 open new ways to tackle this issue?
For those who'd see this more as a philosophical rather then a technical question: There can only be one answer to this and that is a technical accurate definition of a method of using the Microsoft test framework that is capable of running in the TFS CI environment to test code written for Sitecore.
Is Microsoft Fakes the way to go? In my opinion, no. Microsoft fakes allows you to test code that is not designed to be testable. If you design you solution properly, a standard mocking framework should be sufficient.
Can we ever have enough intimate knowledge of sitecore to mock it out? This is kind of a trick question. Unless a third-party library was specifically designed for it and is something that you would consider a "stable dependency", you shouldn't try to mock it. Instead, wrap it with your own classes and abstractions and mock those.
Take a look at Synthesis and Glass Mapper. They are object-mapping frameworks that allow you to map Sitecore items to interfaces while maintaining page editor support. Glass, in particular has a wrapper around Sitecore.Context that can be mocked. Synthesis is supposed to be pretty testable as well, but I haven't tried it yet.
Using one of those mapping frameworks and a good SOLID design, you should be able to make most of your code testable. Just remember that the classes on the edges of your solution should be simple enough to not require testing.
I was in the exact same situation as you, IvanL, a few weeks ago. I wanted to test some of my business logic running against Sitecore 7 without a mocking framework. I managed to do it, but only in a very specific scenario. Unfortunately, I haven't published my prototype solution or the slides explaining it yet, but I'll explain the basics of what I did.
In Sitecore 7, the move towards querying against the index with the Sitecore.ContentSearch namespace and using LINQ opened up a way for me to very easily unit test with fake index data.
There are some unit test examples out there, as you've seen, that use mocking frameworks. However, the classes they mock are actually quite simple to fake out yourself. If you implement ISearchIndex, you really only need to implement the CreateSearchContext method in order to start returning an IQueryable to work with in your tests.
To implement CreateSearchContext, you will likely need to create a fake provider search context implementation that will do the GetQueryable implementation.
Once you have those two classes set up, you've essentially got your 'index' covered. Add a property onto it where you can set the data collection from the unit test and then make sure the context returns that data collection.
That will let you build up a fake index with whatever data POCOs you want, and then pass that through to your standard provider implementations that are running your business data.
The big thing to remember is that this only works for any code you may be writing that will use the new Sitecore 7 way of using LINQ and the IQueryable implementation. Older style code that is running using the Sitecore.Data.Item API still works the way it used to, and has the same limitations as before.
Update: The prototype I mentioned is now available for download: http://blog.nonlinearcreations.com/2014/02/sitecore-7-developers-quest-successful-unit-testing/

Unit testing in multiple environments during a build

Currently I have some unit tests that I would like to be executed during a build. Problem is that we our software is going to be installed on a variety of systems, and the code that I'm testing is system dependent.
Seems like if I really want my unit tests run other environments, I would need some VMs running onto which I could dump my unit tests and dependencies, then run the tests and respond somehow.
If that's the case... is there anything currently available to facilitate that?
If there's a better solution, what do you recommend?
These are VS2008/2010 solutions.
Thanks,
Mark
Can't say what you best option is from here but SCVMM, VMWare Lab Manager, VS2010 Lab manager, are options to look at. You can definitely do what you want, the most feature rich environments tend to be on the expensive side though.
dejagnu facilitates multi-platform testing and is pretty good at it, even though very sparsely documented. Getting it to work with a MS tool chain might be much integration work, though.

Can I make a game using c++ that will run on the web?

There is some libraries that lets you run C++. So, it is it possible to run a game that uses directx full mode screen?
Google is developing a tool to allow this kind of thing via Chrome. It is called Chrome Native Client, or NACL for short. http://blog.chromium.org/2010/05/sneak-peek-at-native-client-sdk.html
In general, no. Most online games are written with Javascript, Flash, the newly hatchedd HTML5 and similar technologies. Perhaps C++ integration is possible on some level, but you definitely cannot write a browser-hosted game purely and entirely in C++.
it could also be done with an ActiveX control. ActiveX only works in IE. there are Netscape plugins that work in other browsers. so make a solution that contains both. you need a book on ActiveX/COM/OLE. Better yet, take a class if you can find one, you will learn far more, because COM is not an easy subject to just read about and then really do - versioning is a big problem.
nope, not supported in firefox. but read this: http://www.google.com/chrome/intl/en/webmasters-faq.html#activex
some people may have activex controls disabled. if this is the case, your game will not run. you will have to tell the user that they will need to change their security settings in IE. you can get feedback from the object element in javascript as to whether or not the activex loaded. there is code out there for that.
http://msdn.microsoft.com/en-us/library/7sw4ddf8%28v=vs.85%29.aspx
examples are all over the internet.

Automated Web Service Testing

I would like to do some integration testing of a web service from within NUnit or MBUnit. I haven't delved into this too deeply yet, but I am pretty sure I will need to spin up WebDev.WebServer.exe within the "unit test" to do this. (I know it's not really a unit test).
Yes, I can test the underlying objects the web service uses on their own (which I am), but what I am interested in testing in this cases is that the proxies are all working and handled as expected, etc.
Any advice?
I asked the same thing (I think ...) I got a tip on SoapUI. It looks promising but I haven't had time to test it yet.
I've had lots of success doing web testing with Selenium
I've used it on Linux and Windows for automated web testing of just about anything.
There is XMLunit (http://xmlunit.sourceforge.net/), for java and Ms.NET. it's could be interesting to check it out some specifications of WS, like wsdl:type, for example!
Cheers!
Orlando Agostinho
Lisbon/Portugal
I found this post and this one which have some solutions on how to start up WebDev.WebServer.exe from within a unit test. Looks like I'll need to do something along these lines.
Until I get that going, I found that what works is to simply run the web service project within VS, let the WebDev server start up that way, and then run the unit tests. Not ideal, but it's OK for now.
Not sure what you're asking. If you're looking to do this without some sort of webserver in between your test and the service, you're going to be disappointed.
If that's not what you're asking... maybe some clarification?
You may want to give Ivonna, an addon built on top of Typemock a try.
The good part about Ivonna is that you don't need to launch webserver for your test, but downside part is that it's not free.