By viewing the top of the exception details only, you can notice that you have a version mismatch. The code is trying to cast the same type (OracleCommand) from different versions of the DataAccess.dll: 22.214.171.124 vs 126.96.36.199:
[A]Oracle.DataAccess.Client.OracleCommand cannot be cast to [B]Oracle.DataAccess.Client.OracleCommand. Type A originates from 'Oracle.DataAccess, Version=188.8.131.52, Culture=neutral, PublicKeyToken=89b483f429c47342' in the context 'Default' at location 'C:\Windows\Microsoft.Net\assembly\GAC_64\Oracle.DataAccess\v4.0_184.108.40.206__89b483f429c47342\Oracle.DataAccess.dll'. Type B originates from 'Oracle.DataAccess, Version=220.127.116.11, Culture=neutral, PublicKeyToken=89b483f429c47342' in the context 'Default' at location 'C:\Windows\assembly\GAC_64\Oracle.DataAccess\18.104.22.168__89b483f429c47342\Oracle.DataAccess.dll'. at
Both of the DataAccess.dll seems to come from the Global Assembly Cache, so now the question is why your code references two different versions. I assume that posting the code that performs the actual invocation (GetApplicationXmlDataSelectionFactory.cs at line 37) might provide more information.
Edit: By viewing the rest of the exception, it seems that the error originates in the IoC framework you are using (MbUnit) - it loads the wrong version of the DataAccess DLL in reflection.