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: 2.112.3.0 vs 4.112.3.0:
[A]Oracle.DataAccess.Client.OracleCommand cannot be cast to [B]Oracle.DataAccess.Client.OracleCommand. Type A originates from 'Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342' in the context 'Default' at location 'C:\Windows\Microsoft.Net\assembly\GAC_64\Oracle.DataAccess\v4.0_4.112.3.0__89b483f429c47342\Oracle.DataAccess.dll'. Type B originates from 'Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342' in the context 'Default' at location 'C:\Windows\assembly\GAC_64\Oracle.DataAccess\2.112.3.0__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.